WO2011159411A3 - Data parallel programming model - Google Patents

Data parallel programming model Download PDF

Info

Publication number
WO2011159411A3
WO2011159411A3 PCT/US2011/036532 US2011036532W WO2011159411A3 WO 2011159411 A3 WO2011159411 A3 WO 2011159411A3 US 2011036532 W US2011036532 W US 2011036532W WO 2011159411 A3 WO2011159411 A3 WO 2011159411A3
Authority
WO
WIPO (PCT)
Prior art keywords
data parallel
programming model
parallel programming
data
call
Prior art date
Application number
PCT/US2011/036532
Other languages
French (fr)
Other versions
WO2011159411A2 (en
Inventor
Charles David Ii Callahan
Paul F. Ringseth
Yosseff Levanoni
Weirong Zhu
Lingli Zhang
Original Assignee
Microsoft 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 Microsoft Corporation filed Critical Microsoft Corporation
Publication of WO2011159411A2 publication Critical patent/WO2011159411A2/en
Publication of WO2011159411A3 publication Critical patent/WO2011159411A3/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

Abstract

Described herein are techniques for enabling a programmer to express a call for a data parallel call-site function in a way that is accessible and usable to the typical programmer. With some of the described techniques, an executable program is generated based upon expressions of those data parallel tasks. During execution of the executable program, data is exchanged between non-data parallel (non-DP) capable hardware and DP capable hardware for the invocation of data parallel functions.
PCT/US2011/036532 2010-06-18 2011-05-13 Data parallel programming model WO2011159411A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/819,097 US20110314256A1 (en) 2010-06-18 2010-06-18 Data Parallel Programming Model
US12/819,097 2010-06-18

Publications (2)

Publication Number Publication Date
WO2011159411A2 WO2011159411A2 (en) 2011-12-22
WO2011159411A3 true WO2011159411A3 (en) 2012-03-08

Family

ID=45329719

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/036532 WO2011159411A2 (en) 2010-06-18 2011-05-13 Data parallel programming model

Country Status (2)

Country Link
US (1) US20110314256A1 (en)
WO (1) WO2011159411A2 (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589867B2 (en) 2010-06-18 2013-11-19 Microsoft Corporation Compiler-generated invocation stubs for data parallel programming model
US8756590B2 (en) * 2010-06-22 2014-06-17 Microsoft Corporation Binding data parallel device source code
US9529574B2 (en) 2010-09-23 2016-12-27 Apple Inc. Auto multi-threading in macroscalar compilers
US8949808B2 (en) 2010-09-23 2015-02-03 Apple Inc. Systems and methods for compiler-based full-function vectorization
US8621448B2 (en) * 2010-09-23 2013-12-31 Apple Inc. Systems and methods for compiler-based vectorization of non-leaf code
US9489183B2 (en) 2010-10-12 2016-11-08 Microsoft Technology Licensing, Llc Tile communication operator
US9430204B2 (en) 2010-11-19 2016-08-30 Microsoft Technology Licensing, Llc Read-only communication operator
US9507568B2 (en) 2010-12-09 2016-11-29 Microsoft Technology Licensing, Llc Nested communication operator
US9395957B2 (en) * 2010-12-22 2016-07-19 Microsoft Technology Licensing, Llc Agile communication operator
US9841958B2 (en) * 2010-12-23 2017-12-12 Microsoft Technology Licensing, Llc. Extensible data parallel semantics
DE102013208560A1 (en) * 2012-05-09 2013-11-14 Nvidia Corporation Method for generating executable data file in compiler e.g. CPU for heterogeneous environment, involves generating executable data file comprising executable form from both host code portions and unique linked apparatus code portions
US9483235B2 (en) 2012-05-09 2016-11-01 Nvidia Corporation Method and system for separate compilation of device code embedded in host code
US10261807B2 (en) * 2012-05-09 2019-04-16 Nvidia Corporation Method and system for multiple embedded device links in a host executable
US10025643B2 (en) * 2012-05-10 2018-07-17 Nvidia Corporation System and method for compiler support for kernel launches in device code
US9229698B2 (en) 2013-11-25 2016-01-05 Nvidia Corporation Method and apparatus for compiler processing for a function marked with multiple execution spaces
US9400683B2 (en) * 2014-10-16 2016-07-26 Sap Se Optimizing execution of processes
US9747089B2 (en) 2014-10-21 2017-08-29 International Business Machines Corporation Automatic conversion of sequential array-based programs to parallel map-reduce programs
US9542248B2 (en) 2015-03-24 2017-01-10 International Business Machines Corporation Dispatching function calls across accelerator devices
US11449452B2 (en) 2015-05-21 2022-09-20 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
CA2984155A1 (en) 2015-05-21 2016-11-24 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
US10104171B1 (en) * 2015-11-25 2018-10-16 EMC IP Holding Company LLC Server architecture having dedicated compute resources for processing infrastructure-related workloads
US9946522B1 (en) * 2016-12-16 2018-04-17 International Business Machines Corporation Generating code for real-time stream processing
CN109729734B8 (en) * 2017-08-31 2020-11-24 中科寒武纪科技股份有限公司 Chip device and related product

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030088601A1 (en) * 1998-10-09 2003-05-08 Nikos P. Pitsianis Efficient complex multiplication and fast fourier transform (fft) implementation on the manarray architecture
US20070028076A1 (en) * 2005-07-26 2007-02-01 Arm Limited Algebraic single instruction multiple data processing
US20090307660A1 (en) * 2008-10-14 2009-12-10 Edss, Inc. Ticc-paradigm to build verified parallel software for multi-core chips

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4205371A (en) * 1975-11-03 1980-05-27 Honeywell Information Systems Inc. Data base conversion system
US4340857A (en) * 1980-04-11 1982-07-20 Siemens Corporation Device for testing digital circuits using built-in logic block observers (BILBO's)
US4503492A (en) * 1981-09-11 1985-03-05 Data General Corp. Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure
US4516203A (en) * 1981-09-11 1985-05-07 Data General Corporation Improved apparatus for encaching data whose value does not change during execution of an instruction sequence
EP0090904B1 (en) * 1982-04-03 1985-08-21 Deutsche ITT Industries GmbH Circuit for a serially operating digital filter
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
US4652995A (en) * 1982-09-27 1987-03-24 Data General Corporation Encachement apparatus using multiple caches for providing multiple component values to form data items
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4847613A (en) * 1986-07-15 1989-07-11 Matsushita Electric Industrial Co., Ltd. Data transfer apparatus
WO1988002156A2 (en) * 1986-09-11 1988-03-24 Hughes Aircraft Company Digital simulation system for generating realistic scenes
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US4853929A (en) * 1987-03-06 1989-08-01 Fujitsu Limited Electronic circuit device able to diagnose status-holding circuits by scanning
US4868776A (en) * 1987-09-14 1989-09-19 Trw Inc. Fast fourier transform architecture using hybrid n-bit-serial arithmetic
US4888714A (en) * 1987-09-25 1989-12-19 Laser Precision Corporation Spectrometer system having interconnected computers at multiple optical heads
JPH0731726B2 (en) * 1989-06-29 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーシヨン Image processing system
US5404519A (en) * 1989-10-11 1995-04-04 Texas Instruments Incorporated System for extending software calls to functions on another processor by means of a communications buffer
US5261095A (en) * 1989-10-11 1993-11-09 Texas Instruments Incorporated Partitioning software in a multiprocessor system
JPH03223957A (en) * 1989-12-26 1991-10-02 Hitachi Ltd Computer
US5361363A (en) * 1990-10-03 1994-11-01 Thinking Machines Corporation Input/output system for parallel computer for performing parallel file transfers between selected number of input/output devices and another selected number of processing nodes
US5377191A (en) * 1990-10-26 1994-12-27 Data General Corporation Network communication system
JPH04337843A (en) * 1991-05-15 1992-11-25 Hitachi Ltd Program operation display method
JP3489123B2 (en) * 1992-04-15 2004-01-19 株式会社日立製作所 Application binding method
US5377228A (en) * 1992-04-20 1994-12-27 Yamaha Corporation Data repeating apparatus
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
WO1994003860A1 (en) * 1992-08-07 1994-02-17 Thinking Machines Corporation Massively parallel computer including auxiliary vector processor
US5566341A (en) * 1992-10-05 1996-10-15 The Regents Of The University Of California Image matrix processor for fast multi-dimensional computations
EP0602806B1 (en) * 1992-12-18 2001-07-04 Advanced Micro Devices, Inc. High-level data link controller (HDLC) receiver
US5566302A (en) * 1992-12-21 1996-10-15 Sun Microsystems, Inc. Method for executing operation call from client application using shared memory region and establishing shared memory region when the shared memory region does not exist
US5524192A (en) * 1993-02-09 1996-06-04 International Business Machines Corporation Simplifying maintaining and displaying of program comments
US5544091A (en) * 1993-03-05 1996-08-06 Casio Computer Co., Ltd. Circuit scale reduction for bit-serial digital signal processing
EP0689694B1 (en) * 1993-03-15 1997-01-02 Siemens Aktiengesellschaft Process for the machine-generation of parallel processable command groups from a program for super-scalar microprocessors
US5426694A (en) * 1993-10-08 1995-06-20 Excel, Inc. Telecommunication switch having programmable network protocols and communications services
US5613139A (en) * 1994-05-11 1997-03-18 International Business Machines Corporation Hardware implemented locking mechanism for handling both single and plural lock requests in a lock message
US5696991A (en) * 1994-11-29 1997-12-09 Winbond Electronics Corporation Method and device for parallel accessing data with optimal reading start
US5680597A (en) * 1995-01-26 1997-10-21 International Business Machines Corporation System with flexible local control for modifying same instruction partially in different processor of a SIMD computer system to execute dissimilar sequences of instructions
US5729748A (en) * 1995-04-03 1998-03-17 Microsoft Corporation Call template builder and method
US5671419A (en) * 1995-06-15 1997-09-23 International Business Machines Corporation Interprocedural data-flow analysis that supports recursion while only performing one flow-sensitive analysis of each procedure
US5737607A (en) * 1995-09-28 1998-04-07 Sun Microsystems, Inc. Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats
US5887172A (en) * 1996-01-10 1999-03-23 Sun Microsystems, Inc. Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends
US5841976A (en) * 1996-03-29 1998-11-24 Intel Corporation Method and apparatus for supporting multipoint communications in a protocol-independent manner
US6032199A (en) * 1996-06-26 2000-02-29 Sun Microsystems, Inc. Transport independent invocation and servant interfaces that permit both typecode interpreted and compiled marshaling
US6163539A (en) * 1998-04-28 2000-12-19 Pmc-Sierra Ltd. Firmware controlled transmit datapath for high-speed packet switches
JP4130713B2 (en) * 1998-10-21 2008-08-06 松下電器産業株式会社 Program converter
US7512738B2 (en) * 2004-09-30 2009-03-31 Intel Corporation Allocating call stack frame entries at different memory levels to functions in a program
US8046777B2 (en) * 2005-06-02 2011-10-25 The Mathworks, Inc. Calling of late bound functions from an external program environment
US20080320255A1 (en) * 2007-06-25 2008-12-25 Sonics, Inc. Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets
US8108648B2 (en) * 2007-06-25 2012-01-31 Sonics, Inc. Various methods and apparatus for address tiling
US8627042B2 (en) * 2009-12-30 2014-01-07 International Business Machines Corporation Data parallel function call for determining if called routine is data parallel

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030088601A1 (en) * 1998-10-09 2003-05-08 Nikos P. Pitsianis Efficient complex multiplication and fast fourier transform (fft) implementation on the manarray architecture
US20070028076A1 (en) * 2005-07-26 2007-02-01 Arm Limited Algebraic single instruction multiple data processing
US20090307660A1 (en) * 2008-10-14 2009-12-10 Edss, Inc. Ticc-paradigm to build verified parallel software for multi-core chips

Also Published As

Publication number Publication date
WO2011159411A2 (en) 2011-12-22
US20110314256A1 (en) 2011-12-22

Similar Documents

Publication Publication Date Title
WO2011159411A3 (en) Data parallel programming model
DK2526469T3 (en) Eye tracking system-based contextual action
WO2010068790A3 (en) Multi-threaded subgraph execution control in a graphical modeling environment
WO2011142933A3 (en) Real time mission planning
WO2010068786A3 (en) Subgraph execution control in a graphical modeling environment
WO2012092117A3 (en) Converting desktop applications to web applications
WO2009149219A3 (en) Appliance development toolkit
EP2577460A4 (en) Generating text manipulation programs using input-output examples
WO2012088508A3 (en) Extensible data parallel semantics
WO2008000498A3 (en) Defining a status model for a computer system
GB201302003D0 (en) Initiating a collective operation in a parallel computer
WO2006032001A3 (en) Methods and system for executing a program in multiple execution environments
WO2009134927A3 (en) Business software application system and method
WO2014033639A3 (en) Introspection of software program components and conditional generation of memory dump
WO2012047470A3 (en) Using a touch-sensitive display of a mobile device with a host computer
WO2009120595A3 (en) Apparatus and methods for widget intercommunication in a wireless communication environment
WO2012088364A3 (en) Satisfying application dependencies
WO2014145801A3 (en) Data modeling studio
GB2485682A (en) Mapping of computer threads onto heterogeneous resources
GB2491694B (en) Inherited transaction context for software applications
WO2011116987A8 (en) A method for automatically generating a trace data set for a software system, a computer system, and a computer program product
WO2011094045A3 (en) Copy and staple gestures
WO2014022743A3 (en) Mobile build, quality and deployment manager
WO2013186627A3 (en) System and method for automatic invocation of constructor code for superclasses
WO2012154634A3 (en) Extensibility features for electronic communications

Legal Events

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

Ref document number: 11796125

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11796125

Country of ref document: EP

Kind code of ref document: A2