# US 2013/0159758 A1 · Synchronizing compute node time bases in a parallel computer

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2013/0159758 A1
- Document ID: US20130159758A1
- Status: Published application
- Kind: A1
- Application number: 13/693,894
- Filed: 2012-12-04
- Published: 2013-06-20
- Earliest claimed: 2011-12-15
- Assignees: International Business Machines Corporation
- Inventors: Dong CHEN; Daniel A. FARAJ; Thomas M. GOODING; Philip HEIDELBERGER
- Web page: https://patentgrep.com/patent/US20130159758A1

## CPC

- G06F 1/12: Synchronisation of different clock signals {provided by a plurality of clock generators}
- H04L 12/413: with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Synchronizing time bases in a parallel computer that includes compute nodes organized for data communications in a tree network, where one compute node is designated as a root, and, for each compute node: calculating data transmission latency from the root to the compute node; configuring a thread as a pulse waiter; initializing a wakeup unit; and performing a local barrier operation; upon each node completing the local barrier operation, entering, by all compute nodes, a global barrier operation; upon all nodes entering the global barrier operation, sending, to all the compute nodes, a pulse signal; and for each compute node upon receiving the pulse signal: waking, by the wakeup unit, the pulse waiter; setting a time base for the compute node equal to the data transmission latency between the root node and the compute node; and exiting the global barrier operation.

## Claims

### Claim 1

A method of synchronizing compute node time bases in a parallel computer, the compute nodes organized for data communications in a tree network, one compute node in the tree network designated as a root node, each compute node executing a plurality of threads, the method comprising:
for each compute node: calculating data transmission latency from the root node to the compute node; configuring a thread of the compute node as a pulse waiter;
initializing a wakeup unit, the wakeup unit configured to wake the pulse waiter responsive to receiving a pulse signal from the root node; and performing a local barrier operation;
upon each node completing the local barrier operation, entering, by all compute nodes, a global barrier operation;
upon all the compute nodes entering the global barrier operation, sending, by the root node to all the compute nodes, a pulse signal; and
for each compute node upon receiving the pulse signal: waking, by the wakeup unit, the pulse waiter; setting a time base for the compute node equal to the data transmission latency between the root node and the compute node; and exiting the global barrier operation.

### Claim 2 (depends on 1)

The method of claim 1 wherein calculating data transmission latency from the root node to the compute node further comprises:
configuring the compute node to operate as a delayed node;
entering, by each compute node other than the delayed node, a global barrier operation;
entering, after a predetermined delay by the delayed node, the global barrier operation including retrieving an entrance time and signaling the root node;
receiving an exit signal from the root node, including retrieving an exit time;
calculating the data transmission latency between the root node and the compute node as half of the difference in the exit time and the entrance time.

### Claim 3 (depends on 2)

The method of claim 2 wherein the predetermined delay comprises a value set at boot time of the compute node.

### Claim 4 (depends on 2)

The method of claim 2, wherein entering, after a predetermined delay by the delayed node, the global barrier operation further comprises:
executing, by the delayed node, a predefined delay operation, wherein the execution is carried out in a period of time greater than a period of time required for other nodes to enter the global barrier operation.

### Claim 5 (depends on 1)

The method of claim 1 wherein calculating data transmission latency from the root node to the compute node further comprises calculating the data transmission latency as the sum of the predetermined latency of network links coupling the compute node to the root node.

### Claim 6 (depends on 1)

The method of claim 1 wherein the parallel computer comprises a non-homogenous parallel computer, wherein one or more of the compute nodes comprise disparate computer hardware and software configurations, and the method further comprises periodically, at a predefined interval of time, re-synchronizing the time bases of the compute nodes.

### Claim 7 (depends on 1)

The method of claim 1 wherein each compute node comprising a plurality of processor cores, each core executing a plurality of threads, each core comprising a thread designated as a pulse waiter.

### Claim at position 8

8-21. (canceled)
