CA2262277A1 - A system and method for optimizing program execution in a computer system - Google Patents

A system and method for optimizing program execution in a computer system Download PDF

Info

Publication number
CA2262277A1
CA2262277A1 CA 2262277 CA2262277A CA2262277A1 CA 2262277 A1 CA2262277 A1 CA 2262277A1 CA 2262277 CA2262277 CA 2262277 CA 2262277 A CA2262277 A CA 2262277A CA 2262277 A1 CA2262277 A1 CA 2262277A1
Authority
CA
Canada
Prior art keywords
loops
selection
computer system
program execution
optimization
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
CA 2262277
Other languages
French (fr)
Other versions
CA2262277C (en
Inventor
Sudarsan Tandri
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.)
IBM Canada Ltd
Original Assignee
IBM Canada 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 IBM Canada Ltd filed Critical IBM Canada Ltd
Priority to CA 2262277 priority Critical patent/CA2262277C/en
Publication of CA2262277A1 publication Critical patent/CA2262277A1/en
Application granted granted Critical
Publication of CA2262277C publication Critical patent/CA2262277C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • 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/451Code distribution
    • G06F8/452Loops
    • 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

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)
  • Stored Programmes (AREA)

Abstract

A method, computer system and article of manufacture for optimizing a computer program, the method comprising the steps of executing an application program and profiling selected loops of the executing program. Characteristics of the profiled loops are then compared to corresponding predetermined threshold values and the results of the comparison are used to select an optimization to be applied to subsequent execution of the selected loops. In a preferred embodiment, the optimization is the selection of either a parallel version or a serial version of the loop. Further embodiments provide for the selection of the number of processors for parallel implemented loops and for the selection of an unroll factor in serially implemented loops.
CA 2262277 1999-02-22 1999-02-22 A system and method for optimizing program execution in a computer system Expired - Fee Related CA2262277C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA 2262277 CA2262277C (en) 1999-02-22 1999-02-22 A system and method for optimizing program execution in a computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA 2262277 CA2262277C (en) 1999-02-22 1999-02-22 A system and method for optimizing program execution in a computer system

Publications (2)

Publication Number Publication Date
CA2262277A1 true CA2262277A1 (en) 2000-08-22
CA2262277C CA2262277C (en) 2003-05-20

Family

ID=4163313

Family Applications (1)

Application Number Title Priority Date Filing Date
CA 2262277 Expired - Fee Related CA2262277C (en) 1999-02-22 1999-02-22 A system and method for optimizing program execution in a computer system

Country Status (1)

Country Link
CA (1) CA2262277C (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008085977A2 (en) * 2007-01-08 2008-07-17 The Mathworks, Inc. Computation of elementwise expression in parallel
US20100138810A1 (en) * 2008-12-03 2010-06-03 International Business Machines Corporation Paralleling processing method, system and program
US20140101641A1 (en) * 2012-10-09 2014-04-10 Securboration, Inc. Systems and methods for automatically parallelizing sequential code
US10725897B2 (en) 2012-10-09 2020-07-28 Securboration, Inc. Systems and methods for automatically parallelizing sequential code

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008085977A2 (en) * 2007-01-08 2008-07-17 The Mathworks, Inc. Computation of elementwise expression in parallel
WO2008085977A3 (en) * 2007-01-08 2008-09-04 Mathworks Inc Computation of elementwise expression in parallel
US8769503B2 (en) 2007-01-08 2014-07-01 The Mathworks, Inc. Computation of elementwise expression in parallel
US8799871B2 (en) 2007-01-08 2014-08-05 The Mathworks, Inc. Computation of elementwise expression in parallel
US20100138810A1 (en) * 2008-12-03 2010-06-03 International Business Machines Corporation Paralleling processing method, system and program
US8438553B2 (en) * 2008-12-03 2013-05-07 International Business Machines Corporation Paralleling processing method, system and program
US20140101641A1 (en) * 2012-10-09 2014-04-10 Securboration, Inc. Systems and methods for automatically parallelizing sequential code
WO2014058854A1 (en) * 2012-10-09 2014-04-17 Securboration, Inc. Systems and methods for automatically parallelizing sequential code
US10387293B2 (en) * 2012-10-09 2019-08-20 Securboration, Inc. Systems and methods for automatically parallelizing sequential code
US10725897B2 (en) 2012-10-09 2020-07-28 Securboration, Inc. Systems and methods for automatically parallelizing sequential code
US11093372B2 (en) 2012-10-09 2021-08-17 Securboration, Inc. Systems and methods for automatically parallelizing sequential code

Also Published As

Publication number Publication date
CA2262277C (en) 2003-05-20

Similar Documents

Publication Publication Date Title
US6308319B1 (en) Thread suspension system and method using trapping instructions in delay slots
US7013454B2 (en) Thread suspension system and method using trapping instructions
TW357319B (en) Computer system and method for executing threads of execution with reduced run-time memory space requirements
EP1026585A3 (en) Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
WO2004034218A3 (en) Method and apparatus for thread-based memory access in a multithreaded processor
WO2001048606A3 (en) Allocation of data to threads in multi-threaded network processor
WO2002054194A3 (en) Adaptive software installation process supporting multiple layers of security-related attributes
EP0953908A3 (en) Method, apparatus, and article of manufacture for time profiling multithreaded programs
WO2001063415A3 (en) Operating system having a system page and method for using same
DE60035324D1 (en) Monitoring of computer usage
CA2431066A1 (en) Methods and apparatus for designing high-dimensional combinatorial experiments
EP0864975A3 (en) Detecting concurrency errors in multi-threaded programs
CA2135318A1 (en) Method of Producing Knitted Articles
WO2002061630A3 (en) System, method and article of manufacture for distributing ip cores
GB0019341D0 (en) System-on-chip solutions
DE3781752D1 (en) PERFORMANCE TYPE CAPACITOR AND ITS USE IN A MAGNETRON.
WO2002061636A3 (en) System, method and article of manufacture for parameterized expression libraries
WO2004034209A3 (en) Method and apparatus for register file port reduction in a multithreaded processor
WO2003049378A3 (en) Home network environment as a state machine
EP1026583A3 (en) User interface for developing and executing data flow programs and methods, apparatus, and articles of manufacture for optimizing the execution of data flow programs
CA2447425A1 (en) Issuance and execution of memory instructions to avoid read-after-write hazards
WO2000079383A3 (en) Supporting multi-dimensional space-time computing through object versioning
Aydonat et al. Serializability of transactions in software transactional memory
WO2002007088A3 (en) Apparatus and method for diffuse and specular lighting of voxel data
CA2262277A1 (en) A system and method for optimizing program execution in a computer system

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed