BACKGROUND [001] A multi-node environment may comprise multiple computing nodes as in a high
performance computing cluster (HPC). The computing nodes may be individual
computers coupled to each other over a network or shared memory multiprocessors, or
many core computers, or any other similar computer systems. The multi-node
environments may be used in weather forecasting, search engines, scientific applications,
and other similar applications. The multi-node environment may consume huge power in
the order of hundreds of mega-watts. Such huge power consumption may generate
enormous heat and may also be cost prohibitive.
BRIEF DESCRIPTION OF THE DRAWINGS
[002] The invention described herein is illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
[003] FIG. 1 illustrates a multi-node environment 100.
[004] FIG. 2 illustrates an embodiment of a master node conserving power in the multi-node environment 100,
[005] FIG. 3 illustrates an embodiment of a slave node conserving power in the multi-node environment 100.
DETAILED DESCRIPTION [006] The following description describes conserving power in a multi-node
environment. In the following description, numerous specific details such as logic
implementations, or duplication implementations, types and interrelationships of
components are set forth in order to provide a more thorough understanding of the
present invention. It will be appreciated, however, by one skilled in the art that the
invention may be practiced without such specific details. In other instances, structures
have not been shown in detail in order not to obscure the invention. Those of ordinary
skill in the art, with the included descriptions, will be able to implement appropriate
functionality without undue experimentation.
[007] References in the specification to "one embodiment", "an embodiment", "an example embodiment", indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
[008] An embodiment of a multi-node environment 100 is illustrated in FIG.l. In one embodiment, the multi-node environment 100 may comprise nodes 110-1 to 110-N. In one embodiment, the nodes 110 may represent networked computers, individual computers, traditional architectures like shared memory multi-processors, or many-core computers, which may comprise many processing cores in a single die. In one embodiment, the multi-node environment 100 may comprise a server farm or data centers
provisioned by organizations such as Google®, Microsoft®, Yahoo®. In one embodiment, the multi-node environment 100 may comprise a high performance cluster (HPC) to perform data modeling, weather forecasting, space exploration, and such other similar applications.
[009] In one embodiment, the nodes 110 may comprise a central processing unit (CPU), a chipset, memory, I/O devices such as a network interface card (NIC), keyboard, mouse, video and audio devices, and such other similar devices. In one embodiment, the nodes 110 may comprise computer systems which may use Intel® IA-32, or IA-64, or lA-EM64T architecture. In one embodiment, the nodes 110 may perform computationally intensive tasks. In one embodiment, the tasks performed by the nodes 110 may comprise a data scatter task, a data crunching task, a synchronization task, and a data gather task.
[010] In one embodiment, one or more of the nodes 110 may be assigned as a master node. In one embodiment, the node 110-1 may be assigned as the master node and the nodes 110-2 to 110-N may operate as slave nodes. In one embodiment, the master node 110-1 and the slave nodes 110-2 to 110-N may coordinate the power management features to conserve the power in the multi-node environment.
[Oil] In one embodiment, the master node 110-1 may perform data scatter, data gather, and other administrative tasks. In one embodiment, the master node 110-1 may assign sub-tasks to various slave nodes 110-2 to 110-N. In one embodiment, the master node 110-1 may gather and collate the results received from the slave nodes 110-2 to 110-N. In one embodiment, the master node 110-1 may also perform book keeping to record the status of the nodes 110. In one embodiment, the slave nodes 110-2 to 110-N may perform the data crunching tasks and synchronization tasks. In one embodiment, to
synchronize, the slave node 110-2 may generate an output after receiving an input from the slave node 110-N and 110-2 may wait for a pre-configured time period until the slave node 110-N generates an output.
[012] In one embodiment, the nodes 110 may support power management features. In one embodiment, while using the power management features, the nodes 110 may be powered down to low-power modes if the activity on the nodes 110 is low. In one embodiment, the power management features may be applicable to sub-nodes such as a software stack, an operating system, a processor, a memory, a chipset, platform buses like universal serial bus (USB) and peripheral component interconnect (PCI), hard disk drive (HDD), networking devices like Ethernet, and such other similar components.
[013] In one embodiment, the nodes 110 may support power management features such as the Advanced Configuration Power Interface (ACPI) features such as the system power states (SI to 85) and device power states (D0-D3). In one embodiment, the power state D0-D3 of a device may be based on the system power state (S1-S5). In one embodiment, the processor power management features may comprise operating a processor at different frequencies such as P-states and low-power states such as C states. In one embodiment, the power management features may comprise operating a memory in self-refresh mode. In one embodiment, the power management features may comprise operating the hard-disk drive in power off mode.
[014] An embodiment of a master node 110-1 conserving the power of a multi-node environment 100 is illustrated in FIG. 2.
[015] In block 210, the master node 1 lO-l may obtain the capabilities of the slave nodes 110-2 to 110-N. In one embodiment, the master node 110-1 may send a broadcast packet
to the slave nodes 110-2 to 110-N. In one embodiment, the broadcast packet may comprise one or more fields, which may be configured by the slave nodes 110-2 to 110-
N.
[016] In one embodiment, the master node 110-1 may receive packets from the slave nodes 110-2 to 110-N and may retrieve the configured field values. In one embodiment, the master node 110-1 may generate a table, which may comprise a node identifier of the slave nodes 110-2 to 110-N and the capability of such nodes.
[017] In block 220, the master node 110-1 may identify the tasks to be assigned to the slave nodes 110-2 to 110-N. In one embodiment, the master node 110-1 may, for example, receive a search criteria and may identify different portions of the database that may be traversed by different slave nodes 110-2 to 110-N. In one embodiment, the master node 110-1 may identify 'K' tasks.
[018] In block 225, the master node 110-1 may check whether the tasks identified in block 220 is less than the available slave nodes 110-2 to 110-N and control passes to block 230 if the identified tasks are less than the slave nodes 110-2 to 110-N and to block 260 otherwise. In one embodiment, the number of slave nodes 110-2 to 110-N may equal (Q). In one embodiment, the master node 110-1 may compare K and Q before the control passes to block 230 or 260.
[019] In block 230, the master node 110-1 may identify one or more slave nodes 110-2 to 110-N with optimum resources to perform the tasks. In one embodiment, the master node 110-1 may chose 'R' (