IP Library › Granted Patent US 8,683,185
Granted Patent B2
US 8,683,185 · App. 12/843,224 · Granted Mar 25, 2014

Ceasing parallel processing of first set of loops upon selectable number of monitored terminations and processing second set

Inventors: Brian Flachs (Georgetown, TX); Charles Ray Johns (Austin, TX); Ulrich Weigand (Boeblingen, DE)
Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,683,185
App. No.
12/843,224
Granted
Mar 25, 2014
Kind
B2
Abstract

The illustrative embodiments comprise a method, data processing system, and computer program product having a processor unit for processing instructions with loops. A processor unit creates a first group of instructions having a first set of loops and second group of instructions having a second set of loops from the instructions. The first set of loops have a different order of parallel processing from the second set of loops. A processor unit processes the first group. The processor unit monitors terminations in the first set of loops during processing of the first group. The processor unit determines whether a number of terminations being monitored in the first set of loops is greater than a selectable number of terminations. In response to a determination that the number of terminations is greater than the selectable number of terminations, the processor unit ceases processing the first group and processes the second group.

Claims (56)

1. A computer-implemented method for processing instructions with loops during compile, the method comprising:

creating, by a processor unit, a first group of instructions having a first set of loops and second group of instructions having a second set of loops from the instructions;

placing, by the processor, the first group and the second group in an order, wherein the order is based on a history of the number of terminations associated with each set of loops, wherein the first set of loops have a different order of parallel processing from the second set of loops;

processing, by the processor unit, the first group;

monitoring, by the processor unit, terminations in the first set of loops during processing of the first group;

determining, by the processor unit, whether a number of terminations being monitored in the first set of loops is greater than a selectable number of terminations; and

responsive to a determination that the number of terminations is greater than the selectable number of terminations:

i) ceasing, by the processor unit, processing the first group; and

ii) processing, by the processor unit, the second group.

2. The computer-implemented method of claim 1 further comprising:

placing, by the processor, the first group and the second group in an order, wherein the order is based on recommendations of a compiler.

3. The computer-implemented method of claim 1 further comprising:

responsive to the determination that the number of terminations is greater than the selectable number of terminations, identifying, by the processor, which loops of the first set of loops have the terminations; and

rearranging, by the processor, the first set of loops based on which loops of the first set of loops have the terminations to form the second set of loops.

4. The computer-implemented method of claim 1 further comprising:

determining, by the processor, a first number of cycles used to complete the number of terminations;

determining, by the processor, a second number of cycles used to complete a number of commits;

responsive to the first number of cycles used to complete the number of terminations and the second number of cycles used to complete the number of commits being greater than a selectable number of total cycles, processing, by the processor unit, the second group.

5. An apparatus comprising:

a processor, and

a memory coupled to the processor, wherein the processor is configured to:

create a first group of instructions having a first set of loops and second group of instructions having a second set of loops from the instructions;

place the first group and the second group in an order, wherein the order is based on a history of the number of terminations associated with each set of loops, wherein the first set of loops have a different order of parallel processing from the second set of loops;

process the first group;

monitor terminations in the first set of loops during processing of the first group;

determine whether a number of terminations being monitored in the first set of loops is greater than a selectable number of terminations; and

responsive to a determination that the number of terminations is greater than the selectable number of terminations:

i) cease processing the first group; and

ii) process the second group.

6. The apparatus of claim 5 , wherein the processor is configured to place the first group and the second group in an order, wherein the order is based on recommendations of a compiler.

7. The apparatus of claim 5 , wherein the processor is configured to:

responsive to the determination that the number of terminations is greater than the selectable number of terminations, identify which loops of the first set of loops have the terminations; and

rearrange the first set of loops based on which loops of the first set of loops have the terminations to form the second set of loops.

8. The apparatus of claim 5 , wherein the processor is configured to:

determine a first number of cycles used to complete the number of terminations;

determine a second number of cycles used to complete a number of commits;

responsive to the first number of cycles used to complete the number of terminations and the second number of cycles used to complete the number of commits being greater than a selectable number of total cycles, process the second group.

9. A computer program product comprising:

a computer usable storage medium including computer usable program code for managing a set of loops, the computer-implemented method comprising:

computer usable program code for creating a first group of instructions having a first set of loops and second group of instructions having a second set of loops from the instructions;

computer usable program code for placing the first group and the second group in an order, wherein the order is based on a history of the number of terminations associated with each set of loops, wherein the first set of loops have a different order of parallel processing from the second set of loops;

computer usable program code for processing the first group;

computer usable program code for monitoring terminations in the first set of loops during processing of the first group;

computer usable program code for determining whether a number of terminations being monitored in the first set of loops is greater than a selectable number of terminations; and

responsive to a determination that the number of terminations is greater than the selectable number of terminations:

i) computer usable program code for ceasing processing of the first group; and

ii) computer usable program code for processing the second group.

10. The computer program product of claim 9 further comprising:

computer usable program code for placing the first group and the second group in an order, wherein the order is based on recommendations of a compiler .

11. The computer program product of claim 9 , wherein computer usable program code for compiling the instructions during processing of the instructions comprises:

responsive to the determination that the number of terminations is greater than the selectable number of terminations, computer usable program code for identifying which loops of the first set of loops have the terminations; and

computer usable program code for rearranging the first set of loops based on which loops of the first set of loops have the terminations to form the second set of loops.

12. The computer program product of claim 9 further comprising:

computer usable program code for determining a first number of cycles used to complete the number of terminations;

computer usable program code for determining a second number of cycles used to complete the number of commits;

responsive to the first number of cycles used to complete the number of terminations and the second number of cycles used to complete the number of commits being greater than a selectable number of total cycles, computer usable program code for processing the second group.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2010
From: FLACHS, BRIAN; JOHNS, CHARLES RAY; WEIGAND, ULRICH, DR.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024739/0637 →
Continuity (1)
Related Publication 20120023316A1 · Jan 26, 2012