WO2016185599A1 - 計算機システム及び計算機 - Google Patents

計算機システム及び計算機 Download PDF

Info

Publication number
WO2016185599A1
WO2016185599A1 PCT/JP2015/064590 JP2015064590W WO2016185599A1 WO 2016185599 A1 WO2016185599 A1 WO 2016185599A1 JP 2015064590 W JP2015064590 W JP 2015064590W WO 2016185599 A1 WO2016185599 A1 WO 2016185599A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
processor
chip
core
inter
Prior art date
Application number
PCT/JP2015/064590
Other languages
English (en)
French (fr)
Inventor
裕治 佐伯
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US15/544,027 priority Critical patent/US10481671B2/en
Priority to PCT/JP2015/064590 priority patent/WO2016185599A1/ja
Publication of WO2016185599A1 publication Critical patent/WO2016185599A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/1735Network adapters, e.g. SCI, Myrinet
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a power saving technique for a computer system having a many-core processor chip.
  • a typical configuration includes a subsystem of a many-core processor chip connected to a general-purpose CPU chip and a main storage device via a PCI Express as an input / output device and an independent memory, and a high-speed network adapter. It consists of a set of compute nodes.
  • Patent Document 1 power control using a power saving function for performing power consumption management in units of cores is known (see, for example, Patent Document 1 and Patent Document 2).
  • Patent Document 1 states that “each VR can supply power to a core or a part of a core. Separate VRs can supply multiple voltages to a core / part of a multi-core processor. The value of the output voltage of the VR can be adjusted down the direction of the core / part to which the voltage regulator is supplying power, in one embodiment, multiple VRs into a core and a single die. In another embodiment, a power management system with multiple VRs may be on a separate die ("VR die") than the multi-core processor die. The VR die can be included in the same package as the multi-core processor die. Is described. As a result, it is possible to perform power control according to the amount of computation assigned to each core.
  • Patent Document 2 discloses “a plurality of processor cores, a first task group identification number for a task, a task processing time, and a register that stores an upper limit period for executing a task included in the first task group;
  • the second task group consisting of a plurality of tasks processed in parallel is extracted from the tasks included in the first task group, the first processing time for processing the second task group is processed, and the second task group is processed.
  • the setting circuit that is set as the second processing time according to the power consumption of the processor core, and the frequency of the operation clock supplied to the processor core that processes each task according to the ratio between the task processing time and the second processing time
  • a multi-core processor comprising a drive circuit for changing the power supply voltage is provided.
  • An object of the present invention is to improve the power efficiency of the many-core processor chip by controlling the power to the processor core in the many-core processor chip.
  • a typical example of the invention disclosed in the present application is as follows. That is, a computer system including a plurality of computers, each of the plurality of computers has one or more processor chips including a plurality of processor cores, and the processor chips are composed of one or more processor cores.
  • the plurality of processor cores execute arithmetic processing for executing a predetermined program and inter-core communication processing that is communication between the processor cores
  • the computer system includes: An adjustment unit that controls a voltage and a frequency supplied to each of the plurality of regions, a power mode that is a combination of a voltage and a frequency supplied to each of the plurality of regions, and a determination unit that outputs an instruction to the adjustment unit,
  • the determination unit is configured based on a calculation amount of calculation processing and a communication data amount of communication processing in one or more processor cores included in each of the plurality of regions. There are, and determines the power mode of each of the plurality of regions.
  • the power waiting time of each processor core can be reduced and the power efficiency of the processor chip can be improved by adjusting the power mode for each area.
  • FIG. 3 is an explanatory diagram illustrating a configuration of a many-core processor chip according to the first embodiment.
  • FIG. 3 is an explanatory diagram illustrating a configuration example of a computer system including the many-core processor chip according to the first embodiment.
  • FIG. 3 is an explanatory diagram illustrating a configuration example of an interconnect of the computer system according to the first embodiment.
  • FIG. 3 is an explanatory diagram illustrating a method for controlling a power mode in units of areas in the many-core processor chip according to the first embodiment.
  • FIG. 3 is an explanatory diagram illustrating a method for controlling a power mode in units of areas in the many-core processor chip according to the first embodiment.
  • FIG. 3 is an explanatory diagram illustrating a method for controlling a power mode in units of areas in the many-core processor chip according to the first embodiment.
  • FIG. 3 is an explanatory diagram illustrating a method for controlling a power mode in units of areas in the many-core processor chip according to the first embodiment. It is explanatory drawing which shows an example of the power mode management information which the adjuster of Example 1 hold
  • 6 is a flowchart illustrating processing executed by a job management node according to the first exemplary embodiment.
  • FIG. 6 is an explanatory diagram illustrating an example of a job description instructing job input according to the first exemplary embodiment.
  • 10 is a flowchart illustrating processing executed by a job management node according to the second embodiment.
  • FIG. 10 is an explanatory diagram illustrating a configuration of a many-core processor chip according to a third embodiment.
  • FIG. 10 is an explanatory diagram illustrating a configuration of a many-core processor chip according to a fourth embodiment.
  • FIG. 10 is an explanatory diagram illustrating a configuration example of an interconnect of a computer system according to a fourth embodiment.
  • FIG. 1 is an explanatory diagram illustrating the configuration of the many-core processor chip 1 according to the first embodiment.
  • the many-core processor chip 1 includes a plurality of processor cores 2 (illustrated as n ⁇ n processor cores 211 and 212 to 2nn in FIG. 1), a memory controller 10, a performance counter 11, and a communication buffer 12.
  • the many-core processor chip 1 includes a memory (not shown) that is locally connected to each processor core 2.
  • the processor core 2 is an arithmetic device that executes various arithmetic processes according to a program. Further, the processor core 2 executes a communication process for referring to data with the other processor cores 2.
  • the many-core processor chip 1 according to the first embodiment includes n ⁇ n processor cores 2.
  • the processor cores 2 are connected to each other via an in-chip network 3 having a two-dimensional mesh structure.
  • the intra-chip network 3 includes a path that directly connects the processor cores 2 in the many-core processor chip 1.
  • the processor core 2 arranged at the boundary of the many-core processor chip 1 has a path directly connected to the communication buffer 12.
  • a path used for communication between the many-core processor chips 1 is connected to the communication buffer 12.
  • the many-core processor chip 1 is connected to another many-core processor chip 1 via the inter-chip network 4 constituted by the path.
  • the processor core 2 performs inter-core communication with other processor cores 2.
  • the inter-core communication includes intra-chip communication that is communication between the processor cores 2 in the many-core processor chip 1 and inter-chip communication that is communication between the processor cores 2 included in different many-core processor chips 1.
  • the processor core 2 in the many-core processor chip 1 has the connection relation as described above, so that the arrangement of the processor core 2 can be expressed by a logical two-dimensional plane.
  • the arrangement of the processor cores 2 in a logical two-dimensional plane and the arrangement of the processor cores 2 in the many-core processor chip 1 are the same.
  • the arrangement of the processor cores 2 on a logical two-dimensional plane (xy plane) is described using a number representing the coordinate x and a number representing the coordinate y.
  • the processor core 213 indicates that the processor core 2 is arranged at the position where the coordinate x is “1” and the coordinate y is “3”.
  • the processor core 213 is a processor core 2 arranged at the boundary of the many-core processor chip 1, and the processor core 2 arranged at the boundary in another many-core processor chip 1 via the communication buffer 12 and the inter-chip network 4. Communicate with. That is, the processor core 213 performs inter-chip communication.
  • the memory controller 10 controls access to the main storage device 13.
  • the performance counter 11 measures the amount of computation of the processor core 2 and the amount of data transmitted / received via the inter-chip network 4 when the program is executed.
  • the communication buffer 12 temporarily stores data transmitted and received in communication between the many-core processor chips 1.
  • the many-core processor chip 1 is configured to be divided into a plurality of regions including one or more processor cores 2. More specifically, the many-core processor chip 1 is configured to be physically divided into a plurality of areas determined based on attributes of inter-core communication.
  • the attribute of inter-core communication indicates the number of paths for connecting the many-core processor chips 1, that is, the number of paths for performing inter-chip communication.
  • the many-core processor chip 1 shown in FIG. 1 includes areas 6-11, 6-21, 6-22, 6-23, 6-24 and areas 6-31, 6-32, 6-33, 6-34.
  • the configuration is divided into three types of regions 6.
  • the communication buffer 12, the memory controller 10, and the performance counter 11 on the many-core processor chip 1 are divided as an area (input / output area 7) different from the processor core 2.
  • the area 6-11 is an area configured by the processor core 2 that does not have a path directly connected to the communication buffer 12.
  • the processor core 2 included in the area 6-11 does not perform inter-chip communication.
  • the areas 6-21, 6-22, 6-23, and 6-24 are configured by the processor core 2 having a path directly connected to the communication buffer 12 connected to the inter-chip network 4 in either the x direction or the y direction. It is an area to be done.
  • the processor cores 2 included in the areas 6-21, 6-22, 6-23, and 6-24 perform unidirectional inter-chip communication.
  • Areas 6-31, 6-32, 6-33, and 6-34 are paths directly connected to the communication buffer 12 connected to the inter-chip network 4 in the x direction and the communication buffer 12 connected to the inter-chip network 4 in the y direction. Is an area composed of the processor core 2 having The processor cores 2 included in the areas 6-31, 6-32, 6-33, and 6-34 perform two-way inter-chip communication.
  • the regulator 15 is connected to each region 6 and the input / output region 7, supplies a power supply voltage and a frequency for each region 6 according to a predetermined power mode, and supplies a power supply voltage to the input / output region 7.
  • Supply indicates a combination of power supply voltage and frequency values.
  • the coordinator 15 holds information for managing a plurality of power modes, and sets the power mode of each area 6 based on an instruction from the determination unit 104 to be described later, thereby allowing the processor core 2 included in each area 6 to Supply power supply voltage and frequency. As will be described later, different power modes are set depending on the type of the region 6.
  • FIG. 2 is an explanatory diagram illustrating a configuration example of a computer system including the many-core processor chip 1 according to the first embodiment.
  • FIG. 3 is an explanatory diagram illustrating a configuration example of an interconnect of the computer system according to the first embodiment.
  • the computer system includes a job management node 100 and a calculation node group 110, and the job management node 100 and the calculation node group 110 are connected to each other via a network 130.
  • the network 130 may be a LAN (Local Area Network), a WAN (Wide Area Network), or the like, but this embodiment is not limited to the type of the network 130.
  • the job management node 100 assigns jobs to the calculation nodes 120 included in the calculation node group 110.
  • the job management node 100 includes a processor chip 101, a main storage device 102, and an interface 103.
  • the processor chip 101 is a general-purpose processor chip and includes one or more processor cores.
  • the main storage device 102 stores a program executed by the processor core and information necessary for the program.
  • the main storage device 102 according to the present embodiment stores a program for realizing the determination unit 104.
  • the determination unit 104 determines the power mode of each region 6 and instructs the adjuster 15 to set the power mode.
  • the interface 103 is an interface for connecting to the computing node group 110 via the network 130.
  • the calculation node group 110 includes a plurality of calculation nodes 120.
  • the calculation node 120 includes a many-core processor chip 1, a main storage device 13, a regulator 15, and an interface 121.
  • the calculation node 120 may include two or more many-core processor chips 1.
  • a plurality of calculation nodes 120 that is, a plurality of many-core processor chips 1, are connected to each other via an inter-chip network 4 having a configuration as shown in FIG. As shown in FIG. 1, the processor cores 2 in the many-core processor chip 1 are connected to each other via a mesh-structured on-chip network 3. The many-core processor chips 1 are connected to each other via an inter-chip network 4 having a torus structure of the same dimension as the intra-chip network 3.
  • a system in which all processor cores 2 are logically interconnected in a torus structure By constructing a torus-structured interchip network 4 having the same dimensions as the mesh-structured intra-chip network 3, a system in which all processor cores 2 are logically interconnected in a torus structure.
  • the communication performance between the processor cores 2 included in different many-core processor chips 1, that is, the communication performance of inter-chip communication is significantly lower than the communication performance of intra-chip communication. .
  • the job management node 100 distributes the parallel job to each computation node 120.
  • a parallel job is a program that is parallelized so that lattice points that are divided into regions so that the computation processing executed by each processor core 2 is the same and the computation amount is uniform are allocated to each processor core 2 equally. Correspond.
  • the processor core 2 refers to the data of the grid point adjacent to the grid point assigned to the processor core 2 and updates the data of the grid point when communicating between the processor cores 2. Is often performed. Therefore, in the computer system configured by the inter-chip network 4 as shown in FIG. 3, when a parallel job is executed by assigning a grid point to each processor core 2, the frequency of communication between adjacent processor cores 2 is the highest. Become.
  • the processing speed of the entire parallel processing is limited to the processor core 2 with the slowest processing because the processing cannot proceed to the next time unless the data of all the grid points is updated.
  • the many-core processor chip 1 divided into a plurality of areas 6 as shown in FIG. 1 is used to minimize the waiting time of the processor core 2 and the power of the many-core processor chip 1. Increase efficiency.
  • the adjuster 15 sets the power mode of each region 6 based on an instruction from the determination unit 104, and supplies a power supply voltage and a frequency to each region 6 according to the set power mode.
  • FIG. 5, and FIG. 6 are explanatory diagrams showing a method of controlling the power mode in units of areas in the many-core processor chip 1 of the first embodiment.
  • 4 and 5 are diagrams focusing on the one-dimensional connection of the many-core processor chip 1.
  • FIG. 4 shows the calculation time and inter-core communication time of the processor core 2 when the adjuster 15 sets the same power mode in all the regions 6.
  • Each processor core 2 performs arithmetic processing of the same content, and performs inter-core communication with other processor cores 2 to refer to data updated by the arithmetic processing.
  • FIG. 4 shows an operation time 200 that is an execution time of the operation processing, and communication times 210 and 220 between the processor cores.
  • the inter-processor core communication time 210 indicates the execution time of intra-chip communication
  • the inter-processor core communication time 220 indicates the execution time of inter-chip communication.
  • each processor core 2 When the same power supply voltage and the same frequency are supplied to each processor core 2, the computation amount assigned to each processor core 2 is the same, so the computation time 200 of each processor core 2 is the same.
  • the communication time (inter-chip communication time 220) of inter-core communication between the processor cores 21 and 2n arranged at the boundary of the many-core processor chip 1 is the processor cores 22, 23, and 2m arranged inside the many-core processor chip 1. It becomes longer than the communication time of the inter-core communication (in-chip communication time 210).
  • the processor cores 22, 23 and 2m arranged in the many-core processor chip 1 are in a waiting state until the inter-chip communication of the processor cores 21 and 2n is completed. That is, a waiting time occurs.
  • the regulator 15 sets the power mode so as to increase the power supply voltage and frequency of the processor cores 21 and 2n, and sets the power mode so as to decrease the power supply voltage and frequency of the processor cores 22, 23, and 2m.
  • the calculation time and inter-core communication time of the processor core 2 when set are shown.
  • the adjuster 15 controls the power mode of each region 6, whereby the waiting time as shown in FIG. 4 can be reduced.
  • the determination unit 104 determines the power mode of each region 6 based on the following three conditions.
  • (Condition 1) Power mode within the range of thermal design power
  • (Condition 2) Each power mode (Condition 3) that minimizes the maximum of the total value of the computation time and inter-core communication time of the processor core 2 included in each region Power mode in which the difference between the calculation time of processor core 2 included in the region and the total value of communication time between cores is small
  • (Condition 1) is a condition for not exceeding the upper limit of power consumption of the many-core processor chip 1 as a whole.
  • (Condition 2) is a condition for increasing the power supply voltage and frequency in order to speed up the arithmetic processing of the processor core 2 arranged at the chip boundary that requires a large number of cycles in order to perform inter-chip communication.
  • (condition 3) is a condition for reducing the power supply voltage and the frequency in order to extend the calculation time of the processor core 2 capable of communication with a small number of cycles since only intra-chip communication is performed.
  • the determining unit 104 determines the power mode of each area 6 based on the above three conditions, thereby improving the power efficiency of the many-core processor chip 1 and the computer system.
  • FIG. 6 the processor cores 211, 2n1 having paths connecting to the two-way many-core processor chip 1 and the processor cores 211, 221, 231, 2m1, 2n1 having paths connecting to the one-way many-core processor chip 1 are shown.
  • Exists In the two-way inter-chip communication, a data amount twice as large as that of the one-way inter-chip communication is transmitted / received, so that the communication time of the two-way inter-chip communication is longer than the communication time of the one-way inter-chip communication.
  • the determination unit 104 determines the power mode so that the power supply voltage and the frequency increase in order from the region 6 including the processor core 2 having a large number of inter-chip communication paths. That is, the determination unit 104 determines the power supply voltage in the order of the regions 6-31, 6-32, 6-33, 6-34, the regions 6-21, 6-22, 6-23, 6-24, and the region 6-11. And determining a power mode that reduces the frequency. As a result, the waiting time for communication processing in the processor core 2 can be minimized and the power efficiency can be improved.
  • the determination unit 104 determines a combination of power supply voltage and frequency (power mode) that shortens the operation time 200. Further, the determination unit 104 performs arithmetic processing on the area 6 including the processor cores 212, 221, 231, 2m1, 2n1, and 2n2 during execution of inter-chip communication other than the inter-chip communication performed by the processor core 2.
  • the power mode is determined as follows. Further, the determination unit 104 sets the power mode for the region 6 including the processor cores 221, 232, 2 m 2, and 2xy so that the arithmetic processing is executed during the inter-chip communication of the processor core 2 in the other region 6. decide.
  • FIG. 7 is an explanatory diagram illustrating an example of the power mode management information 300 held by the adjuster 15 according to the first embodiment.
  • the determination unit 104 also holds similar power mode management information 300.
  • the power mode management information 300 is information for managing the power mode set by the adjuster 15 for each region.
  • the power mode management information 300 includes a mode ID 301, a voltage 302, and a frequency 303.
  • the mode ID 301 is an identifier for uniquely identifying the power mode.
  • the voltage 302 and the frequency 303 are specific power supply voltage and frequency combinations in the power mode corresponding to the mode ID 301.
  • FIG. 8 is a flowchart illustrating processing executed by the job management node 100 according to the first embodiment.
  • FIG. 9 is an explanatory diagram illustrating an example of a job description 400 for instructing job input according to the first embodiment.
  • the determination unit 104 of the job management node 100 determines the power mode to be set for each area 6 by analyzing the processing performance of the parallel program of the calculation node 120 in advance.
  • the function of the determination unit 104 is realized using a job scheduler.
  • the job management node 100 accepts job input (step S100).
  • the job management node 100 distributes the parallel job to each processor core 2 of the many-core processor chip 1, and instructs the execution of the parallel job according to a predetermined schedule (step S101).
  • the performance counter 11 of the many-core processor chip 1 measures the power consumption of the many-core processor chip 1, the calculation amount and the communication data amount of each processor core 2 during execution of the parallel job.
  • the job management node 100 analyzes the processing performance based on the execution result of the parallel program (step S102), and determines the power mode to be set for each area 6 based on the analysis result.
  • the job management node 100 identifies the main part that needs to control the power mode in the parallel program. For example, a part corresponding to a process having a long calculation time is a main part.
  • the job management node 100 also determines the power mode to be set for each area 6 based on the power consumption of the many-core processor chip 1 measured by the performance counter 11 and the calculation amount and communication data amount of the processor core 2. .
  • the amount of calculation and the amount of communication data of at least one processor core 2 are measured.
  • the power mode set in each area 6 is determined based on, for example, the calculation amount of the processor core 2 that executes parallel jobs and the communication data amount of inter-chip communication.
  • a variable representing the calculation amount is “A”
  • a variable representing the communication data amount of inter-chip communication is “C”
  • a variable representing the throughput of inter-chip communication is “b”
  • a variable representing the frequency of the processor core 2 arranged at the boundary of the many-core processor chip 1 is “f1”.
  • the calculation time can be calculated using the following equation (1), and the inter-chip communication time can be calculated using the following equation (2).
  • the optimum frequency f2 in the region 6-11 including only the processor core 2 that performs only intra-chip communication is given by the following equation (3).
  • the upper limit value of the frequency that operates stably when a power supply voltage is applied has a relationship as shown in the following expression (4), and the power supply voltage can be obtained from the following expression (4).
  • the determination unit 104 is a combination of approximate values calculated based on the above-described formulas, and A power mode in which the power consumption of the entire chip does not exceed the upper limit value is determined.
  • the determination unit 104 stores control information in which the parallel program, the main part in the parallel program, and the power mode of each area 6 are associated with each other in the main storage device 102. Note that the control information may be output to another device.
  • a script for submitting a job that is, a job description 400 that is an execution request for the parallel program, includes the power mode of each area 6 in the main part, Alternatively, the calculation amount and the communication data amount are designated.
  • the job description 400 shown in FIG. 9 includes lines for specifying the calculation amount and the communication data amount.
  • the determination unit 104 When the job management node 100 receives a job input via the job description 400, the determination unit 104 outputs the identification information of each area 6 and the identifier of the power mode set in each area 6 to the adjuster 15. .
  • the adjuster 15 controls the power mode of each region 6 according to the instruction from the determination unit 104.
  • the determination unit 104 of the job management node 100 has selected the power mode of each area 6, but the many-core processor chip 1 may have the same function.
  • the determination unit 104 can be realized on the many-core processor chip 1 by storing a program for realizing the determination unit 104 in the main storage device 13 and executing at least one processor core 2 of the many-core processor chip 1. .
  • the compiler interprets a parallel program in which a comment statement specifying the main part and the amount of computation and the amount of communication data is inserted. Insert an instruction to set the power mode into the parallel program.
  • the processor core 2 corresponding to the determination unit 104 determines the power mode of each region 6 based on the instruction, and instructs the adjuster 15 to set the power mode of each region 6. As a result, power control suitable for each main part is possible.
  • the processor core 2 on the many-core processor chip 1 is divided into a plurality of areas 6 based on the number of paths connecting the many-core processor chips 1.
  • a power mode different from the area can be set. Thereby, the waiting time of each processor core 2 is reduced, and the power efficiency of the many-core processor chip 1 can be improved.
  • the power mode of each area 6 is set during the execution of the parallel program.
  • the second embodiment will be described with a focus on differences from the first embodiment.
  • the configuration of the many-core processor chip 1 and the computer system of the second embodiment is the same as that of the first embodiment, the description thereof is omitted.
  • the power mode setting method for the region 6 is different.
  • FIG. 10 is a flowchart illustrating processing executed by the job management node 100 according to the second embodiment.
  • the job management node 100 accepts job input (step S200).
  • the job management node 100 instructs the coordinator 15 to set the same power mode for all areas 6 (step S201). Further, the job management node 100 initializes the performance counter 11 of the many-core processor chip 1 (step S202). Thereafter, the job management node 100 distributes the job to each processor core 2 of the many-core processor chip 1 and instructs the execution of the job according to a predetermined schedule (step S203).
  • the job management node 100 periodically acquires the power consumption of the many-core processor chip 1, the calculation amount of the processor core 2, and the communication data amount of the processor core 2 from the performance counter 11 (step S204).
  • the job management node 100 determines the power mode of each area 6 based on the value acquired from the performance counter 11 (step S205). Since the method for determining the power mode is the same as that in the first embodiment, the description thereof is omitted.
  • the job management node 100 outputs a power mode setting command including the identifier of the region 6 and the identifier of the selected power mode to the adjuster 15, thereby instructing to change the power mode of each region 6 (step S206). ).
  • the job management node 100 determines whether or not the processing by the parallel program has been completed (step S207). If it is determined that the processing by the parallel program has not been completed, the job management node 100 returns to step S204 and repeatedly executes the same processing. If it is determined that the processing by the parallel program has been completed, the job management node 100 ends the processing.
  • the determination unit 104 of the job management node 100 has selected the power mode of each area 6, but the many-core processor chip 1 may have the same function.
  • the determination unit 104 can be realized on the many-core processor chip 1 by storing a program for realizing the determination unit 104 in the main storage device 13 and executing at least one processor core 2 of the many-core processor chip 1. .
  • the power mode can be dynamically set during the execution of the parallel program, more detailed power control can be realized. Therefore, power efficiency can be further improved.
  • the many-core processor chip 1 includes an external power source and a clock generator for each region 6.
  • the difference from the first embodiment will be mainly described.
  • FIG. 11 is an explanatory diagram illustrating the configuration of the many-core processor chip 1 according to the third embodiment. Since the configuration of the many-core processor chip 1 and the configuration of the computer system are the same as those in the first embodiment, description thereof is omitted.
  • the regulator 15 manages the power mode as a combination of discrete power supply voltages and frequencies.
  • the optimum power supply voltage and frequency take continuous values. Therefore, in the first embodiment, the determination unit 104 can select only a power mode that can be set by the adjuster 15. For this reason, it is difficult to maximize the power efficiency of the many-core processor chip 1.
  • the processor core 2 that executes the same parallel job often performs the same operation in the many-core processor chip 1. Therefore, the power efficiency is improved by setting the power supply voltage and the frequency of each region 6 as a combination of continuous values for each group of the computer system or the many-core processor chip 1.
  • an external power source 500 and a clock generator 510 are connected to each region 6 of the many-core processor chip 1 of the third embodiment.
  • the external power source 500-1 and the clock generator 510-1 are connected to the region 6-11, and the external power source 500-2 is connected to the regions 6-21, 6-22, 6-23, and 6-24.
  • an external power supply 500-3 and a clock generator 510-3 are connected to the areas 6-31, 6-32, 6-33 and 6-34, and an external input / output area 7
  • a power supply 500-4 and a clock generator 510-4 are connected.
  • the area 6 of the many-core processor chip 1 has the same connection relationship.
  • the job management node 100 has a function corresponding to the adjuster 15.
  • the job management node 100 is connected to each external power source 500 and each clock generator 510 via the function.
  • the function corresponding to the adjuster 15 may be realized using either hardware or software.
  • the determination unit 104 determines a combination of continuous values of the power supply voltage and frequency in each region 6, and the regulator 15 supplies the determined power supply voltage and frequency so that the external power supply 500 and the clock generator are supplied. 510 is controlled.
  • the power supply voltage and frequency can be adjusted more precisely than the regulator 15 provided in the many-core processor chip 1.
  • the power supply voltage and frequency of each region 6 can be adjusted more precisely, the power efficiency of the many-core processor chip 1 can be further improved.
  • the structure of the many-core processor chip 1 is different from that of the first embodiment.
  • the fourth embodiment will be described focusing on differences from the first embodiment. Since the configuration of the computer system is the same as that of the first embodiment, description thereof is omitted.
  • FIG. 12 is an explanatory diagram illustrating the configuration of the many-core processor chip 1 according to the fourth embodiment.
  • FIG. 13 is an explanatory diagram of a configuration example of an interconnect of the computer system according to the fourth embodiment.
  • the many-core processor chip 1 of the fourth embodiment includes n ⁇ n ⁇ n processor cores 2.
  • the processor cores 2 are connected to each other via an on-chip network 3x, 3y, 3z having a three-dimensional mesh structure.
  • processor cores 2 in the intra-chip networks 3x, 3y, and 3z in the many-core processor chip 1 are described using three-dimensional coordinates (x, y, z).
  • processor cores 2 having the same value of the coordinate x and the coordinate y are arranged at physically adjacent positions.
  • the in-chip network 3z in the z direction sequentially connects the processor cores 2 from the processor core 201 to the processor core 20n in the area 61m.
  • the processor cores 201 and 20n are connected to the communication buffers 12-5 and 12-6 in the z direction via the intra-chip network 3z and communicate with the outside of the many-core processor chip 1.
  • the in-chip network 3x in the x direction connects, for example, between the processor cores 2 having the same relative position in the area between the area 61m and the area 62m.
  • the areas 611, 612, 61m, and 61n are connected to the x-direction communication buffer 12-1 via the intra-chip network 3x and communicate with the outside of the many-core processor chip 1.
  • the regions 6n1, 6n2, 6nm, and 6nn are connected to the x-direction communication buffer 12-2 via the intra-chip network 3x and communicate with the outside of the many-core processor chip 1.
  • the in-chip network 3y in the y direction connects, for example, between the processor cores 2 having the same relative position in the area between the area 61m and the area 61n.
  • the areas 611, 621, 6m1, and 6n1 are connected to the communication buffer 12-3 in the y direction via the intra-chip network 3y, and communicate with the outside of the many-core processor chip 1.
  • the regions 61n, 62n, 6mn, and 6nn are connected to the communication buffer 12-4 in the y direction via the intra-chip network 3y and communicate with the outside of the many-core processor chip 1.
  • the processor cores 2 included in the areas 611, 612, 61m, and 61n and the areas 6n1, 6n2, 6nm, and 6nn have paths for inter-chip communication in the x direction.
  • the processor cores 2 included in the regions 611, 621, 6m1, and 6n1 and the regions 61n, 62n, 6mn, and 6nn have a path for inter-chip communication in the y direction.
  • Each region 6 has a path for inter-chip communication in the z direction as shown by the processor cores 201 and 20n.
  • the processor core 2 in the many-core processor chip 1 of the fourth embodiment is determined from the logical position (the position of the three-dimensional mesh) of the processor core 2 in the in-chip networks 3x, 3y, and 3z having a three-dimensional mesh structure. It is configured to be divided into four types of areas: an internal area, a boundary surface area, a boundary line area, and a vertex area.
  • the processor core 2 arranged on the side of the cube is connected to two paths.
  • the processor core 2 arranged at the vertex of the cube is connected to three paths.
  • the processor cores 2 arranged on the surface of the cube excluding the processor cores 2 arranged on the sides and vertices of the cube are connected to one path.
  • the processor core 2 arranged inside the cube does not have a path connecting to the outside.
  • each region 6 has the following configuration.
  • the internal area is an area configured by the processor core 2 that does not have an inter-chip communication path.
  • the boundary area is an area composed of the processor core 2 having one inter-chip communication path.
  • the boundary line area is an area configured by the processor core 2 having two inter-chip communication paths.
  • the vertex area is an area constituted by the processor core 2 having three inter-chip communication paths.
  • the communication buffer 12, the memory controller 10, and the performance counter 11 on the many-core processor chip 1 are divided as an area (input / output area 7) separate from the processor core 2. Yes.
  • a plurality of many-core processor chips 1 are connected to each other via an inter-chip network 4 configured as shown in FIG. As shown in FIG. 12, the processor cores 2 in the many-core processor chip 1 are connected to each other via a mesh-structured intra-chip network 3x, 3y, 3z.
  • the many-core processor chips 1 are connected to each other via an inter-chip network 4x, 4y, 4z having a torus structure of the same dimension as the intra-chip network 3 in the many-core processor chip 1.
  • inter-chip network 4x, 4y, 4z having the same dimension as the torus structure 3x, 3y, 3z in the mesh structure, all the processor cores 2 are logically interconnected in the torus structure.
  • the computation node group 110 executes a parallel program corresponding to a problem on the grid similar to that in the first embodiment.
  • the processor core 2 that directly communicates with the processor core 2 of the other many-core processor chip 1 is delayed in processing by the waiting time due to inter-chip communication.
  • the eight processor cores 2 arranged at the vertices in the three-dimensional mesh structure that is, the communication data amount of the processor core 2 included in the vertex region is equal to the communication data amount of the processor core 2 included in the boundary surface region. Tripled. Therefore, the communication time for inter-chip communication is long.
  • the determination unit 104 determines a power mode in which the power supply voltage and the frequency are decreased in the order of the vertex region, the boundary line region, the boundary surface region, and the internal region. As a result, the calculation speed of each processor core 2 is adjusted so that the waiting time due to inter-chip communication is minimized. Thereby, the power efficiency of the many-core processor chip 1 can be improved.
  • the power mode depending on the implementation of the many-core processor chip 1. For example, when the z coordinate is determined in rack units and the inter-chip communication in the z direction is inter-rack communication, the communication performance of the inter-chip communication in the x direction and the communication performance of the inter-chip communication in the y direction are the same. The communication performance between chips in the z direction is lower than the communication performance of communication between chips in the x direction and the y direction.
  • the determination unit 104 determines other power modes for the boundary line area or the boundary area including the processor core 2 that performs inter-chip communication in the z direction. A power mode different from the power mode of the boundary line region or the boundary surface region is determined. Thereby, the waiting time due to the difference in communication performance of inter-chip communication can be reduced. Note that the method for determining the power mode to be set is the same as in the first embodiment, and a description thereof will be omitted.
  • this invention is not limited to the above-mentioned Example, Various modifications are included. Further, for example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those provided with all the described configurations. Further, a part of the configuration of each embodiment can be added to, deleted from, or replaced with another configuration.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • the present invention can also be realized by software program codes that implement the functions of the embodiments.
  • a storage medium in which the program code is recorded is provided to the computer, and a CPU included in the computer reads the program code stored in the storage medium.
  • the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing it constitute the present invention.
  • Examples of storage media for supplying such program codes include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, A non-volatile memory card, ROM, or the like is used.
  • program code for realizing the functions described in this embodiment can be implemented by a wide range of programs or script languages such as assembler, C / C ++, Perl, Shell, PHP, Java, and the like.
  • the program code is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R.
  • the CPU included in the computer may read and execute the program code stored in the storage unit or the storage medium.
  • control lines and information lines indicate those that are considered necessary for the explanation, and do not necessarily indicate all the control lines and information lines on the product. All the components may be connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

複数の計算機を備える計算機システムであって、複数の計算機の各々は、複数のプロセッサコアを含むプロセッサチップを一つ以上有し、プロセッサチップは、一つ以上のプロセッサコアから構成される複数の領域を構成し、複数のプロセッサコアは、所定のプログラムを実行する演算処理、プロセッサコア間の通信であるコア間通信処理を実行し、計算機システムは、複数の領域の各々に供給する電圧及び周波数を制御する調整部と、複数の領域の各々の電力モードを決定し、調整部に指示を出力する決定部と、を備える。

Description

計算機システム及び計算機
 本発明は、メニーコアプロセッサチップを有する計算機システムの省電力技術に関する。
 大規模な科学技術シミュレーションを行うために、数十万から数百万個のプロセッサコアを相互に接続した並列計算機システムが開発されている。近年の並列計算機システムには、半導体チップの集積度の向上によって、構造を単純化した数千個の同種のプロセッサコアが実装されるメニーコアプロセッサチップが用いられる。その代表的な構成としては、汎用CPUチップ及び主記憶装置に対して、入出力デバイスとしてPCI Expressを介して接続され、かつ、独立したメモリを備えるメニーコアプロセッサチップのサブシステムと、高速ネットワークアダプタを備えた計算ノード群で構成される。
 数万の計算ノードを相互に接続する大規模なシステムにおいては、全体の消費電力が10メガワットを超えるため、電力を抑制する機構が必要となる。またプロセッサチップ単体においても、全てのコアを高負荷で動作させた場合、電力及び温度が設計上限を超えてしまうため、演算速度を調整する必要がある。
 そこで、コア単位の消費電力管理を行う省電力機能を用いた電力制御が知られている(例えば、特許文献1、特許文献2参照)。
 特許文献1には、「各VRは電力をコア、又はコアの一部に供給することができる。別々のVRが、複数の電圧を多コア・プロセッサ内のコア/一部に供給することができる。VRの出力電圧の値は、電圧調節器が電力を供給する先のコア/一部の方向下で調節することができる。一実施例では、複数のVRをコアと単一のダイに一体化することができる。別の実施例では、複数のVRを備えた電力管理システムは、多コア・プロセッサのダイとは別個のダイ(「VRダイ」)上にあり得る。VRダイは、多コア・プロセッサ・ダイと同じパッケージに含めることができる。」ことが記載されている。これによって、各コアに割り当てられた演算量に応じた電力制御を行うことができる。
 また、特許文献2には、「複数のプロセッサコアと、タスクについての第1タスク群の識別番号と、タスク処理時間と、第1タスク群に含まれるタスクを実行する上限期間を記憶するレジスタと、第1タスク群に含まれるタスクの内、並列に処理される複数のタスクからなる第2タスク群を抽出し、第2タスク群を処理する第1処理時間を、第2タスク群を処理するプロセッサコアの消費電力に応じて第2処理時間として設定する設定回路と、タスク処理時間と、第2処理時間との比率に応じて、各タスクを処理するプロセッサコアへ供給する動作クロックの周波数又は電源電圧を変更する駆動回路と、を備えるマルチコアプロセッサが提供される。」ことが記載されている。
特開2012-038347号公報 特開2010-211544号公報
 メニーコアプロセッサチップにおいて、各コアに割り当てられたタスクの負荷情報に基づいて、電源電圧及び動作周波数を調整する、従来の電力制御を適用した場合、電圧及び周波数を制御する調整器の配置、及び各コアの電力モードの選択が難しい。
 また、大規模な科学技術シミュレーションでは、一般的に、計算対象のデータを均等に分割して全てのコアに対して割り当て、同じプログラムを用いて処理する。このとき、各コアの演算負荷は均等であるため、コア単位に電力制御を行う必要はない。しかし、並列計算機システム全体を一つのプログラムが占有して使用する場合は少ないため、一つのプログラムが使用するプロセッサチップのグループごとに負荷のバランスが均一にならならず、システム全体としての電力管理を行うことが課題となる。
 一方、メニーコアプロセッサチップを相互接続して構成された並列計算機の場合、チップ内のコア間の通信性能とチップ間の通信性能とに大きな差があるという問題があり、アルゴリズム又は計算順序の変更によって、チップ間通信と演算とを同時に行う等の工夫が必要となる。
 本発明は、メニーコアプロセッサチップ内のプロセッサコアに対する電力制御によって、メニーコアプロセッサチップの電力効率を向上させることを目的とする。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の計算機を備える計算機システムであって、前記複数の計算機の各々は、複数のプロセッサコアを含むプロセッサチップを一つ以上有し、前記プロセッサチップは、一つ以上のプロセッサコアから構成される複数の領域を構成し、前記複数のプロセッサコアは、所定のプログラムを実行する演算処理、プロセッサコア間の通信であるコア間通信処理を実行し、前記計算機システムは、前記複数の領域の各々に供給する電圧及び周波数を制御する調整部と、前記複数の領域の各々に供給する電圧及び周波数の組合せである電力モードを決定し、前記調整部に指示を出力する決定部と、を備え、前記決定部は、前記複数の領域の各々に含まれる一つ以上のプロセッサコアにおける演算処理の演算量及び通信処理の通信データ量に基づいて、前記複数の領域の各々の前記電力モードを決定することを特徴とする。
 本発明によれば、複数の領域に分割されたプロセッサチップにおいて、領域毎に電力モードを調整することによって、各プロセッサコアの処理の待ち時間を削減し、プロセッサチップの電力効率を向上できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
実施例1のメニーコアプロセッサチップの構成を示す説明図である。 実施例1のメニーコアプロセッサチップを有する計算機システムの構成例を示す説明図である。 実施例1の計算機システムのインターコネクトの構成例を示す説明図である。 実施例1のメニーコアプロセッサチップ内の領域単位の電力モードの制御方法を示す説明図である。 実施例1のメニーコアプロセッサチップ内の領域単位の電力モードの制御方法を示す説明図である。 実施例1のメニーコアプロセッサチップ内の領域単位の電力モードの制御方法を示す説明図である。 実施例1の調整器が保持する電力モード管理情報の一例を示す説明図である。 実施例1のジョブ管理ノードが実行する処理を説明するフローチャートである。 実施例1のジョブの投入を指示するジョブ記述の一例を示す説明図である。 実施例2のジョブ管理ノードが実行する処理を説明するフローチャートである。 実施例3のメニーコアプロセッサチップの構成を示す説明図である。 実施例4のメニーコアプロセッサチップの構成を示す説明図である。 実施例4の計算機システムのインターコネクトの構成例を示す説明図である。
 図1は、実施例1のメニーコアプロセッサチップ1の構成を示す説明図である。
 メニーコアプロセッサチップ1は、複数のプロセッサコア2(図1においてはn×n個のプロセッサコア211、212~2nnとして図示される)、メモリコントローラ10、パフォーマンスカウンタ11、及び通信バッファ12を備える。なお、メニーコアプロセッサチップ1は、図示しない、各プロセッサコア2とローカルに接続されるメモリを備える。
 プロセッサコア2は、プログラムにしたがって各種演算処理を実行する演算装置である。また、プロセッサコア2は、他のプロセッサコア2との間でデータを参照等するための通信処理を実行する。実施例1のメニーコアプロセッサチップ1は、n×n個のプロセッサコア2を備える。
 各プロセッサコア2は、2次元メッシュ構造のチップ内ネットワーク3を介して相互に接続する。チップ内ネットワーク3は、メニーコアプロセッサチップ1内のプロセッサコア2間を直接接続するパスから構成される。
 また、メニーコアプロセッサチップ1の境界に配置されたプロセッサコア2は、通信バッファ12に直接接続するパスを有する。通信バッファ12には、メニーコアプロセッサチップ1間の通信に用いられるパスが接続される。メニーコアプロセッサチップ1は、当該パスから構成されるチップ間ネットワーク4を介して他のメニーコアプロセッサチップ1と接続する。
 プロセッサコア2は、他のプロセッサコア2との間でコア間通信を行う。コア間通信には、メニーコアプロセッサチップ1内のプロセッサコア2間の通信であるチップ内通信と、異なるメニーコアプロセッサチップ1に含まれるプロセッサコア2間の通信であるチップ間通信とがある。
 実施例1では、メニーコアプロセッサチップ1内のプロセッサコア2は、前述したような接続関係であるためプロセッサコア2の配置は論理的な2次元平面によって表現できる。実施例1では、論理的な2次元平面におけるプロセッサコア2の配置と、メニーコアプロセッサチップ1内のプロセッサコア2の配置は一致する。ここで、論理的な2次元平面(xy平面)におけるプロセッサコア2の配置を座標xを表す数字、及び座標yを表す数字を用いて表記する。例えば、プロセッサコア213は、座標xが「1」、座標yが「3」の位置に配置されたプロセッサコア2であることを表す。プロセッサコア213は、メニーコアプロセッサチップ1の境界に配置されたプロセッサコア2であり、通信バッファ12及びチップ間ネットワーク4を経由して、他のメニーコアプロセッサチップ1内の境界に配置されたプロセッサコア2と通信する。すなわち、プロセッサコア213は、チップ間通信を行う。
 メモリコントローラ10は、主記憶装置13に対するアクセスを制御する。パフォーマンスカウンタ11は、プログラムの実行時に、プロセッサコア2の演算量、チップ間ネットワーク4を介して送受信されたデータ量を計測する。通信バッファ12は、メニーコアプロセッサチップ1間の通信において送受信されるデータを一時的に格納する。
 実施例1のメニーコアプロセッサチップ1は、一つ以上のプロセッサコア2から構成される複数の領域に分割された構成となっている。より具体的には、メニーコアプロセッサチップ1は、コア間通信の属性に基づいて定められた複数の領域に、物理的に分割された構成となっている。ここで、コア間通信の属性とは、メニーコアプロセッサチップ1間を接続するパス、すなわち、チップ間通信を行うためのパスの数を示す。
 図1に示すメニーコアプロセッサチップ1は、領域6-11、領域6-21、6-22、6―23、6―24及び、領域6―31、6―32、6―33、6―34の三種類の領域6に分割された構成である。なお、メニーコアプロセッサチップ1上の通信バッファ12、メモリコントローラ10、パフォーマンスカウンタ11は、プロセッサコア2とは別の領域(入出力領域7)として分割された構成となっている。
 領域6-11は、通信バッファ12と直接接続するパスを有さないプロセッサコア2から構成される領域である。領域6-11に含まれるプロセッサコア2は、チップ間通信を行わない。
 領域6-21、6-22、6―23、6―24は、x方向又はy方向のいずれか方向のチップ間ネットワーク4と接続する通信バッファ12と直接接続するパスを有するプロセッサコア2から構成される領域である。領域6-21、6-22、6―23、6―24に含まれるプロセッサコア2は、一方向のチップ間通信を行う。
 領域6―31、6―32、6―33、6―34は、x方向のチップ間ネットワーク4と接続する通信バッファ12及びy方向のチップ間ネットワーク4と接続する通信バッファ12と直接接続するパスを有するプロセッサコア2から構成される領域である。領域6―31、6―32、6―33、6―34に含まれるプロセッサコア2は、二方向のチップ間通信を行う。
 実施例1では、調整器15は、各領域6及び入出力領域7に接続され、所定の電力モードにしたがって領域6ごとに電源電圧及び周波数を供給し、また、入出力領域7に電源電圧を供給する。ここで、電力モードとは、電源電圧及び周波数の値の組み合わせを示す。調整器15は、複数の電力モードを管理する情報を保持し、後述する決定部104からの指示に基づいて各領域6の電力モードを設定することによって、各領域6に含まれるプロセッサコア2に電源電圧及び周波数を供給する。後述するように、領域6の種類に応じて、異なった電力モードが設定される。
 なお、複数のメニーコアプロセッサチップ1を相互接続した計算機システムの場合、メニーコアプロセッサチップ1間のデータ入出力は高速で行う必要があるため、調整器15は、入出力領域7に対しては一定の電源電圧を供給するものとする。
 図2は、実施例1のメニーコアプロセッサチップ1を有する計算機システムの構成例を示す説明図である。図3は、実施例1の計算機システムのインターコネクトの構成例を示す説明図である。
 計算機システムは、ジョブ管理ノード100及び計算ノード群110から構成され、ジョブ管理ノード100及び計算ノード群110はネットワーク130を介して互いに接続される。ネットワーク130は、LAN(Local Area Network)、WAN(Wide Area Network)等が考えられるが、本実施例はネットワーク130の種別に限定されない。
 ジョブ管理ノード100は、計算ノード群110に含まれる計算ノード120に対してジョブを割り当てる。ジョブ管理ノード100は、プロセッサチップ101、主記憶装置102、及びインタフェース103を備える。
 プロセッサチップ101は、汎用的なプロセッサチップであり、一つ以上のプロセッサコアを含む。主記憶装置102は、プロセッサコアによって実行されるプログラム及び当該プログラムに必要な情報を格納する。本実施例の主記憶装置102は、決定部104を実現するプログラムを格納する。決定部104は、各領域6の電力モードを決定し、調整器15に対して電力モードの設定を指示する。インタフェース103は、ネットワーク130を介して計算ノード群110に接続するためのインタフェースである。
 計算ノード群110は、複数の計算ノード120を含む。計算ノード120は、メニーコアプロセッサチップ1、主記憶装置13、調整器15、及びインタフェース121を備える。なお、計算ノード120は、二つ以上のメニーコアプロセッサチップ1を備えてもよい。
 複数の計算ノード120、すなわち、複数のメニーコアプロセッサチップ1は、例えば、図3に示すような構成のチップ間ネットワーク4を介して、互いに接続される。図1に示すように、メニーコアプロセッサチップ1内の各プロセッサコア2はメッシュ構造のチップ内ネットワーク3を介して互いに接続する。各メニーコアプロセッサチップ1は、チップ内ネットワーク3と同一次元のトーラス構造のチップ間ネットワーク4を介して互いに接続する。
 メッシュ構造のチップ内ネットワーク3と同一の次元のトーラス構造のチップ間ネットワーク4を構成することによって、論理的には全てのプロセッサコア2がトーラス構造で相互接続されたシステムとなる。しかし、メニーコアプロセッサチップ1間の入出力スループットの制限によって、異なるメニーコアプロセッサチップ1に含まれるプロセッサコア2間の通信、すなわち、チップ間通信の通信性能は、チップ内通信の通信性能より大幅に低い。
 ここで、大規模な科学技術計算の一例として格子上の問題に対応した並列プログラムを計算ノード群110に実行させることを考える。この場合、ジョブ管理ノード100は、並列ジョブを各計算ノード120に配布する。並列ジョブは、各プロセッサコア2が実行する演算処理が同一、かつ、演算量が均一になるように領域分割された格子点を各プロセッサコア2に均等に割り当てるように、並列化されたプログラムに対応する。
 このような並列プログラムでは、プロセッサコア2は、当該プロセッサコア2に割り当てられた格子点に隣接する格子点のデータを参照し、当該格子点のデータを更新する場合に、プロセッサコア2間の通信が行われることが多い。したがって、図3に示すようなチップ間ネットワーク4で構成される計算機システムにおいて、各プロセッサコア2に格子点を割り当てて並列ジョブを実行させる場合、隣接するプロセッサコア2間の通信の頻度が最も高くなる。
 前述したように、チップ間通信の通信性能と、チップ内通信の通信性能との間には大きな差がある。そのため、あるプロセッサコア2が、隣接するプロセッサコア2に割り当てられた格子点のデータを参照する場合、チップ内通信におけるアクセスタイムに対して、チップ間通信におけるアクセスタイムが大きくなる。したがって、メニーコアプロセッサチップ1の境界に配置されたプロセッサコア2、すなわち、他のメニーコアプロセッサチップ1のプロセッサコア2と直接通信を行うプロセッサコア2は、チップ間通信による待ち時間の分だけ処理に遅延が発生する。
 格子点のデータを繰り返し更新する演算処理では、全ての格子点のデータが更新されないと次の回に進めないため、最も処理が遅いプロセッサコア2に並列処理全体の処理速度が律速される。
 前述したような問題を解決するために、図1に示すような複数の領域6に分割されたメニーコアプロセッサチップ1を用いて、プロセッサコア2の待ち時間を最小にして、メニーコアプロセッサチップ1の電力効率を向上させる。具体的には、調整器15が、決定部104からの指示に基づいて各領域6の電力モードを設定し、設定された電力モードにしたがって、各領域6に電源電圧及び周波数を供給する。
 ここで、図4、図5、及び図6を用いて、格子上の問題に対応した並列プログラムの実行時における電力モードの制御方法について説明する。
 図4、図5、及び図6は、実施例1のメニーコアプロセッサチップ1内の領域単位の電力モードの制御方法を示す説明図である。なお、図4及び図5は、メニーコアプロセッサチップ1の1次元の接続に着目した図である。
 図4では、調整器15が全ての領域6に同一の電力モードを設定した場合のプロセッサコア2の演算時間及びコア間通信時間を示す。各プロセッサコア2は、同一内容の演算処理を実行し、演算処理によって更新されたデータを参照するために他のプロセッサコア2との間でコア間通信を行う。図4では、演算処理の実行時間である演算時間200、及びプロセッサコア間通信時間210、220を示す。なお、プロセッサコア間通信時間210は、チップ内通信の実行時間を示し、プロセッサコア間通信時間220は、チップ間通信の実行時間を示す。
 同一の電源電圧及び同一の周波数が各プロセッサコア2に供給された場合、各プロセッサコア2に割り当てられる演算量は同一であるため、各プロセッサコア2の演算時間200は同一となる。
 プロセッサコア2間で送受信されるデータのデータ量は同一であるが、チップ内通信、及びチップ間通信は通信性能が大きく異なる。したがって、メニーコアプロセッサチップ1の境界に配置されたプロセッサコア21、2nのコア間通信の通信時間(チップ間通信時間220)は、メニーコアプロセッサチップ1の内部に配置されたプロセッサコア22、23、2mのコア間通信の通信時間(チップ内通信時間210)より大きくなる。
 そのため、メニーコアプロセッサチップ1内に配置されたプロセッサコア22、23、2mは、プロセッサコア21、2nのチップ間通信が終了するまで待ち状態となる。すなわち、待ち時間が発生する。
 図5では、調整器15が、プロセッサコア21、2nの電源電圧及び周波数を上げるように電力モードを設定し、また、プロセッサコア22、23、2mの電源電圧及び周波数を下げるように電力モードを設定した場合のプロセッサコア2の演算時間及びコア間通信時間を示す。
 プロセッサコア21、2nに供給される電源電圧及び周波数は高く設定されるため、演算時間200が短くなる。一方、プロセッサコア22、23、2mに供給される電源電圧及び周波数は低く設定されるため、演算時間200が長くなる。これによって、プロセッサコア21、2nのチップ間通信の実行中にプロセッサコア22、23、2mの演算処理が実行されるように、演算性能が調整される。このように、調整器15が、各領域6の電力モードを制御することによって、図4に示すような待ち時間を削減できる。
 ここで、決定部104は、以下のような三つの条件に基づいて各領域6の電力モードを決定する。
(条件1)熱設計電力の範囲内の電力モード
(条件2)各領域に含まれるプロセッサコア2の演算時間及びコア間通信時間の合計値の最大値を最小とする電力モード
(条件3)各領域に含まれるプロセッサコア2の演算時間及びコア間通信時間の合計値の差が小さくなる電力モード
 (条件1)は、メニーコアプロセッサチップ1全体の消費電力の上限を超えないための条件である。(条件2)は、チップ間通信を行うため、多くのサイクル数を要するチップ境界に配置されたプロセッサコア2の演算処理を高速化するために電源電圧及び周波数を上げるための条件である。また、(条件3)は、チップ内通信のみを行うため、少ないサイクル数で通信が可能なプロセッサコア2の演算時間を延ばすために電源電圧及び周波数を下げるための条件である。
 決定部104が、前述の三つの条件に基づいて各領域6の電力モードを決定することによって、メニーコアプロセッサチップ1及び計算機システムの電力効率を向上することができる。
 図6では、2方向のメニーコアプロセッサチップ1と接続するパスを有するプロセッサコア211、2n1と、1方向のメニーコアプロセッサチップ1と接続するパスを有するプロセッサコア211、221、231、2m1、2n1とが存在する。二方向のチップ間通信では、一方向のチップ間通信の2倍のデータ量を送受信されるため、二方向のチップ間通信の通信時間は、一方向のチップ間通信の通信時間より大きい。
 そのため、決定部104は、チップ間通信のパスの数が多いプロセッサコア2を含む領域6から順に、電源電圧及び周波数が高くなるように電力モードを決定する。すなわち、決定部104は、領域6-31、6-32、6-33、6-34、領域6-21、6-22、6-23、6-24、領域6-11の順に、電源電圧及び周波数が低くなるような電力モードを決定する。これによって、プロセッサコア2における通信処理の待ち時間を最小にし、かつ、電力効率を向上できる。
 具体的には、決定部104は、プロセッサコア211及びプロセッサコア2n1を含む領域6については、演算時間200が短くなる電源電圧及び周波数の組み合わせ(電力モード)を決定する。また、決定部104は、プロセッサコア212、221、231、2m1、2n1、2n2を含む領域6については、当該プロセッサコア2が行うチップ間通信以外のチップ間通信の実行中に演算処理が実行されるように電力モードを決定する。また、決定部104は、プロセッサコア221、232、2m2、2xyを含む領域6については、他の領域6のプロセッサコア2のチップ間通信の実行中に演算処理が実行されるように電力モードを決定する。
 これによって、各プロセッサコア2の処理時間の合計値の差が最小となる。したがって、メニーコアプロセッサチップ1の電力効率を向上することができる。
 次に、前述したような制御を実現するための具体的な処理について説明する。
 図7は、実施例1の調整器15が保持する電力モード管理情報300の一例を示す説明図である。実施例1では、決定部104も同様の電力モード管理情報300を保持する。
 電力モード管理情報300は、調整器15が領域単位に設定する電力モードを管理するための情報である。電力モード管理情報300は、モードID301、電圧302、及び周波数303を含む。
 モードID301は、電力モードを一意に識別するための識別子である。電圧302及び周波数303は、モードID301に対応する電力モードの具体的な電源電圧及び周波数の組み合わせである。
 図8は、実施例1のジョブ管理ノード100が実行する処理を説明するフローチャートである。図9は、実施例1のジョブの投入を指示するジョブ記述400の一例を示す説明図である。
 実施例1では、ジョブ管理ノード100の決定部104が、予め、計算ノード120の並列プログラムの処理性能を解析することによって、各領域6に設定する電力モードを決定する。実施例1では、ジョブスケジューラを用いて決定部104の機能を実現するものとする。
 ジョブ管理ノード100は、ジョブの投入を受け付ける(ステップS100)。ジョブ管理ノード100は、メニーコアプロセッサチップ1の各プロセッサコア2に並列ジョブを配布し、所定のスケジュールにしたがって並列ジョブの実行を指示する(ステップS101)。このとき、メニーコアプロセッサチップ1のパフォーマンスカウンタ11は、並列ジョブの実行中にメニーコアプロセッサチップ1の消費電力と、各プロセッサコア2の演算量及び通信データ量とを計測する。
 ジョブ管理ノード100は、並列プログラムの実行結果に基づいて処理性能を解析し(ステップS102)、解析の結果に基づいて各領域6に設定する電力モードを決定する。
 具体的には、ジョブ管理ノード100は、並列プログラムにおいて電力モードを制御する必要のある主要部分を特定する。例えば、演算時間が長い処理に対応する部分が主要部分となる。ジョブ管理ノード100は、また、パフォーマンスカウンタ11によって計測されたメニーコアプロセッサチップ1の消費電力と、プロセッサコア2の演算量及び通信データ量とに基づいて、各領域6に設定する電力モードを決定する。なお、一つの領域6に複数のプロセッサコア2が含まれる場合、少なくとも一つのプロセッサコア2の演算量及び通信データ量が計測される。
 各領域6に設定する電力モードは、例えば、並列ジョブを実行するプロセッサコア2の演算量及びチップ間通信の通信データ量に基づいて決定される。ここで、演算量を表す変数を「A」とし、また、チップ間通信の通信データ量を表す変数を「C」とする。また、チップ間通信のスループットを表す変数を「b」とし、メニーコアプロセッサチップ1の境界に配置されたプロセッサコア2の周波数を表す変数を「f1」とする。
 このとき、演算時間は下式(1)、チップ間通信時間は下式(2)に示す数式を用いて算出することができる。また、チップ内通信のスループットがbより十分大きい場合、チップ内通信のみを行うプロセッサコア2のみを含む領域6-11における最適な周波数f2は下式(3)で与えられる。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000003
 一般に、電源電圧が与えられた場合に安定して動作する周波数の上限値は下式(4)に示すような関係があり、下式(4)から電源電圧を求めることができる。
Figure JPOXMLDOC01-appb-M000004
 調整器15が設定可能な電力モードが離散的な電源電圧及び周波数の値の組み合わせである場合、決定部104は、前述した式に基づいて算出された値の近似値の組み合わせであり、かつ、チップ全体の消費電力が上限値を超えない電力モードを決定する。
 また、決定部104は、並列プログラム、並列プログラムにおける主要部分、及び各領域6の電力モードを対応付けた制御情報を主記憶装置102に格納する。なお、当該制御情報は、他の装置に出力されてもよい。
 オペレータは、並列プログラムの実行を要求する場合、制御情報に基づいて、ジョブの投入するためのスクリプト、すなわち、並列プログラムの実行要求であるジョブ記述400に、主要部分における各領域6の電力モード、又は、演算量及び通信データ量を指定する。図9に示すジョブ記述400には、演算量及び通信データ量を指定する行が含まれる。
 ジョブ管理ノード100は、当該ジョブ記述400を介してジョブの投入を受け付けた場合、決定部104が、各領域6の識別情報、各領域6に設定する電力モードの識別子を調整器15に出力する。調整器15は、決定部104からの指示にしたがって、各領域6の電力モードを制御する。
 なお、ジョブ管理ノード100の決定部104が、各領域6の電力モードを選択していたが、メニーコアプロセッサチップ1が同様の機能を有してもよい。例えば、主記憶装置13に決定部104を実現するプログラムを格納し、メニーコアプロセッサチップ1の少なくとも一つのプロセッサコア2が当該プログラムを実行することによって、メニーコアプロセッサチップ1上で決定部104を実現できる。
 なお、複数の主要部分が存在する場合、コンパイラが、主要部分と、演算量及び通信データ量とを指定するコメント文が挿入された並列プログラムを解釈し、調整器15に対して各領域6の電力モードを設定するための命令を並列プログラムに挿入する。この場合、決定部104に対応するプロセッサコア2が、当該命令に基づいて、各領域6の電力モードを決定し、調整器15に対して各領域6の電力モードの設定を指示する。これによって、各主要部分に適した電力制御が可能となる。
 実施例1によれば、メニーコアプロセッサチップ1上のプロセッサコア2は、メニーコアプロセッサチップ1間を接続するパスの数に基づいて複数の領域6に分割された構成であり、各領域6に他の領域とは異なる電力モードを設定することができる。これによって、各プロセッサコア2の待ち時間が削減され、また、メニーコアプロセッサチップ1の電力効率を向上できる。
 実施例2では、並列プログラムの実行中に各領域6の電力モードが設定される。以下、実施例1との差異を中心に、実施例2について説明する。
 実施例2のメニーコアプロセッサチップ1、計算機システムの構成は実施例1と同一であるため説明を省略する。実施例2では、領域6に対する電力モードの設定方法が異なる。
 図10は、実施例2のジョブ管理ノード100が実行する処理を説明するフローチャートである。
 ジョブ管理ノード100は、ジョブの投入を受け付ける(ステップS200)。ジョブ管理ノード100は、調整器15に、全ての領域6に同一の電力モードの設定を指示する(ステップS201)。また、ジョブ管理ノード100は、メニーコアプロセッサチップ1のパフォーマンスカウンタ11を初期化する(ステップS202)。その後、ジョブ管理ノード100は、メニーコアプロセッサチップ1の各プロセッサコア2にジョブを配布し、所定のスケジュールにしたがってジョブの実行を指示する(ステップS203)。
 ジョブ管理ノード100は、周期的に、パフォーマンスカウンタ11からメニーコアプロセッサチップ1の消費電力、プロセッサコア2の演算量、及びプロセッサコア2の通信データ量を取得する(ステップS204)。ジョブ管理ノード100は、パフォーマンスカウンタ11から取得された値に基づいて、各領域6の電力モードを決定する(ステップS205)。電力モードの決定方法は、実施例1と同一の方法であるため説明を省略する。ジョブ管理ノード100は、領域6の識別子、及び選択された電力モードの識別子を含む電力モードの設定命令を調整器15に出力することによって、各領域6の電力モードの変更を指示する(ステップS206)。
 ジョブ管理ノード100は、並列プログラムによる処理が完了したか否かを判定する(ステップS207)。並列プログラムによる処理が完了していないと判定された場合、ジョブ管理ノード100は、ステップS204に戻り、同様の処理を繰り返し実行する。並列プログラムによる処理が完了したと判定された場合、ジョブ管理ノード100は処理を終了する。
 なお、ジョブ管理ノード100の決定部104が、各領域6の電力モードを選択していたが、メニーコアプロセッサチップ1が同様の機能を有してもよい。例えば、主記憶装置13に決定部104を実現するプログラムを格納し、メニーコアプロセッサチップ1の少なくとも一つのプロセッサコア2が当該プログラムを実行することによって、メニーコアプロセッサチップ1上で決定部104を実現できる。
 実施例2によれば、並列プログラムの実行中に、動的に電力モードが設定できるため、より詳細な電力制御を実現できる。そのため電力効率をより向上できる。
 実施例3では、メニーコアプロセッサチップ1が、領域6毎に外部電源及びクロックジェネレータを備える。以下、実施例1との差異を中心に説明する。
 図11は、実施例3のメニーコアプロセッサチップ1の構成を示す説明図である。なお、メニーコアプロセッサチップ1の構成、及び計算機システムの構成は実施例1と同一であるため説明を省略する。
 実施例1の調整器15は、離散的な電源電圧及び周波数の組み合わせとして電力モードを管理する。一方、最適な電源電圧及び周波数は、連続的な値をとる。したがって、実施例1では、決定部104は、調整器15が設定可能な電力モードしか選択できない。そのため、メニーコアプロセッサチップ1の電力効率を最大化することが困難である。
 同一の並列ジョブを実行するプロセッサコア2は、メニーコアプロセッサチップ1内において同じ動作をすることが多い。そのため、計算機システム又はメニーコアプロセッサチップ1のグループ単位に、各領域6の電源電圧及び周波数を連続的な値の組み合わせとして設定することによって、電力効率を向上する。
 そこで、実施例3のメニーコアプロセッサチップ1の各領域6には、外部電源500及びクロックジェネレータ510が接続される。具体的には、領域6-11には、外部電源500-1及びクロックジェネレータ510-1が接続され、領域6-21、6-22、6-23、6-24には外部電源500-2及びクロックジェネレータ510-2が接続され、領域6-31、6-32、6-33、6-34には外部電源500-3及びクロックジェネレータ510-3が接続され、入出力領域7には外部電源500-4及びクロックジェネレータ510-4が接続される。また、メニーコアプロセッサチップ1の領域6についても同様の接続関係を有する。
 実施例3では、ジョブ管理ノード100が、調整器15に対応する機能を有する。この場合、ジョブ管理ノード100は、当該機能を介して、各外部電源500及び各クロックジェネレータ510と接続する。なお、調整器15に対応する機能は、ハードウェア又はソフトウェアの何れを用いて実現してもよい。
 実施例3では、決定部104が各領域6の電源電圧及び周波数の連続的な値の組み合わせを決定し、調整器15が決定された電源電圧及び周波数を供給するように外部電源500及びクロックジェネレータ510を制御する。実施例3では、メニーコアプロセッサチップ1に備わる調整器15よりも精密な電源電圧及び周波数の調整が可能となる。
 実施例3によれば、各領域6の電源電圧及び周波数をより精密に調整できるため、メニーコアプロセッサチップ1の電力効率をより向上できる。
 実施例4では、メニーコアプロセッサチップ1の構造が実施例1とは異なる。以下実施例1との差異を中心に実施例4について説明する。なお、計算機システムの構成は実施例1と同一であるため説明を省略する。
 図12は、実施例4のメニーコアプロセッサチップ1の構成を示す説明図である。図13は、実施例4の計算機システムのインターコネクトの構成例を示す説明図である。
 実施例4のメニーコアプロセッサチップ1は、n×n×n個のプロセッサコア2を備える。各プロセッサコア2は、3次元メッシュ構造のチップ内ネットワーク3x、3y、3zを介して相互に接続する。
 実施例4では、メニーコアプロセッサチップ1内のチップ内ネットワーク3x、3y、3zにおけるプロセッサコア2の配置を3次元座標(x,y,z)を用いて表記する。座標x及び座標yの値が同一であるn個のプロセッサコア2は、物理的に隣接した位置に配置される。例えば、図12において、x=1、y=mである平面上には16個のプロセッサコア2が領域61mに配置される。
 z方向のチップ内ネットワーク3zは、例えば、領域61m内部において、プロセッサコア201からプロセッサコア20nまでのプロセッサコア2を順に接続する。プロセッサコア201、20nは、チップ内ネットワーク3zを介してz方向の通信バッファ12-5、12-6と接続し、メニーコアプロセッサチップ1の外部と通信する。
 x方向のチップ内ネットワーク3xは、例えば、領域61mと領域62mとの間で、領域内の相対位置が同一であるプロセッサコア2間を接続する。領域611、612、61m、61nは、チップ内ネットワーク3xを介してx方向の通信バッファ12-1と接続し、メニーコアプロセッサチップ1の外部と通信する。また、領域6n1、6n2、6nm、6nnは、チップ内ネットワーク3xを介してx方向の通信バッファ12-2と接続し、メニーコアプロセッサチップ1の外部と通信する。
 y方向のチップ内ネットワーク3yは、例えば、領域61mと領域61nとの間で、領域内の相対位置が同一であるプロセッサコア2間を接続する。領域611、621、6m1、6n1は、チップ内ネットワーク3yを介してy方向の通信バッファ12-3と接続し、メニーコアプロセッサチップ1の外部と通信する。また、領域61n、62n、6mn、6nnは、チップ内ネットワーク3yを介してy方向の通信バッファ12-4と接続し、メニーコアプロセッサチップ1の外部と通信する。
 通信バッファ12に接続するパスに着目した場合、領域611、612、61m、61n及び領域6n1、6n2、6nm、6nnに含まれるプロセッサコア2は、x方向のチップ間通信のためのパスを有する。領域611、621、6m1、6n1及び領域61n、62n、6mn、6nnに含まれるプロセッサコア2は、y方向のチップ間通信のためのパスを有する。また各領域6には、プロセッサコア201、20nに示すようなz方向のチップ間通信のためのパスを有する。
 以上の特性から、実施例4のメニーコアプロセッサチップ1内のプロセッサコア2は、3次元メッシュ構造のチップ内ネットワーク3x、3y、3zにおけるプロセッサコア2の論理的な位置(3次元メッシュの位置)から、内部領域、境界面領域、境界線領域、及び頂点領域の四種類の領域に分割された構成となる。
 ここで、n×n×nの格子点を含む立方体の格子点上にプロセッサコア2が配置される論理的なメニーコアプロセッサチップ1のモデルを考える。立方体の境界に配置されたプロセッサコア2は、パスを介して、他のメニーコアプロセッサチップ1と接続する。
 具体的には、立方体の辺に配置されたプロセッサコア2は二つのパスと接続する。また、立方体の頂点に配置されたプロセッサコア2は三つのパスと接続する。また、立方体の辺及び頂点に配置されたプロセッサコア2を除く、立方体の面に配置されたプロセッサコア2は、一つのパスと接続する。立方体の内部に配置されたプロセッサコア2は、外部と接続するパスを有さない。
 以上の考察から、各領域6は以下のような構成であることが分かる。内部領域は、チップ間通信のパスを有さないプロセッサコア2から構成される領域である。境界面領域は、チップ間通信のパスを一つ有するプロセッサコア2から構成される領域である。境界線領域は、チップ間通信のパスを二つ有するプロセッサコア2から構成される領域である。さらに、頂点領域は、チップ間通信のパスを三つ有するプロセッサコア2から構成される領域である。
 また、実施例1と同様に、メニーコアプロセッサチップ1上の通信バッファ12、メモリコントローラ10、パフォーマンスカウンタ11は、プロセッサコア2とは別の領域(入出力領域7)として分割された構成となっている。
 複数のメニーコアプロセッサチップ1は、図13に示すような構成のチップ間ネットワーク4を介して、互いに接続される。図12に示すように、メニーコアプロセッサチップ1内の各プロセッサコア2はメッシュ構造のチップ内ネットワーク3x、3y、3zを介して互いに接続する。各メニーコアプロセッサチップ1は、メニーコアプロセッサチップ1内のチップ内ネットワーク3と同一次元のトーラス構造のチップ間ネットワーク4x、4y、4zを介して互いに接続する。
 メッシュ構造のチップ内ネットワーク3x、3y、3zと同一の次元のトーラス構造のチップ間ネットワーク4x、4y、4zを構成することによって、論理的には全てのプロセッサコア2がトーラス構造で相互接続されたシステムとなる。
 実施例1と同様の格子上の問題に対応した並列プログラムを計算ノード群110に実行させることを考える。この場合、他のメニーコアプロセッサチップ1のプロセッサコア2と直接通信を行うプロセッサコア2は、チップ間通信による待ち時間の分だけ処理に遅延が発生する。
 例えば、3次元メッシュ構造における頂点に配置された8個のプロセッサコア2は、すなわち、頂点領域に含まれるプロセッサコア2の通信データ量は、境界面領域に含まれるプロセッサコア2の通信データ量の3倍となる。そのため、チップ間通信の通信時間が長い。
 したがって、格子上の問題に対応した並列プログラムを計算ノード群110に実行させる場合、最も処理が遅いプロセッサコア2に並列処理全体の処理速度が律速される。
 そのため、決定部104は、頂点領域、境界線領域、境界面領域、及び内部領域の順に、電源電圧及び周波数が低くなるような電力モードを決定する。これによって、チップ間通信による待ち時間が最小になるように各プロセッサコア2の演算速度が調整される。これによって、メニーコアプロセッサチップ1の電力効率を向上できる。
 また、メニーコアプロセッサチップ1の実装に依存した電力モードの調整も可能である。例えば、ラック単位でz座標が決まっておりz方向のチップ間通信がラック間の通信となる場合、x方向のチップ間通信の通信性能及びy方向のチップ間通信の通信性能は同一であるが、z方向のチップ間通信性能はx方向及びy方向のチップ間通信の通信性能より低い。
 前述したようにチップ間通信の通信性能に違いがある場合、決定部104は、z方向のチップ間通信を行うプロセッサコア2を含む境界線領域、又は境界面領域の電力モードについては、他の境界線領域又は境界面領域の電力モードとは異なる電力モードに決定する。これによって、チップ間通信の通信性能の違いに伴う待ち時間を削減できる。なお、設定する電力モードの決定方法等は、実施例1と同一であるため説明を省略する。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
 また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java等の広範囲のプログラム又はスクリプト言語で実装できる。
 さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
 上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。

Claims (15)

  1.  複数の計算機を備える計算機システムであって、
     前記複数の計算機の各々は、複数のプロセッサコアを含むプロセッサチップを一つ以上有し、
     前記プロセッサチップは、一つ以上のプロセッサコアから構成される複数の領域を構成し、
     前記複数のプロセッサコアは、所定のプログラムを実行する演算処理、プロセッサコア間の通信であるコア間通信処理を実行し、
     前記計算機システムは、
     前記複数の領域の各々に供給する電圧及び周波数を制御する調整部と、
     前記複数の領域の各々に供給する電圧及び周波数の組合せである電力モードを決定し、前記調整部に指示を出力する決定部と、
     を備え、
     前記決定部は、前記複数の領域の各々に含まれる一つ以上のプロセッサコアにおける演算処理の演算量及び通信処理の通信データ量に基づいて、前記複数の領域の各々の前記電力モードを決定することを特徴とする計算機システム。
  2.  請求項1に記載の計算機システムであって、
     前記プロセッサチップに含まれる前記複数のプロセッサコアは、チップ内ネットワークを介して互いに接続され、
     複数のプロセッサチップは、チップ間ネットワークを介して互いに接続され、
     前記複数の領域の各々は、プロセッサコアのコア間通信の属性に基づいて定められ、
     前記コア間通信は、前記プロセッサチップに含まれる前記プロセッサコア間の通信であるチップ内通信と、異なるプロセッサチップに含まれる前記プロセッサコア間の通信であるチップ間通信と、を含み、
     前記決定部は、
     前記所定のプログラムにおいて前記電力モードを制御する演算部分を示す情報と、当該演算部分における前記複数の領域の各々に含まれる前記一つ以上のプロセッサコアの前記演算量及び前記通信データ量とを含む、プログラムの実行要求を受け付け、
     前記プログラムの実行要求に基づいて、前記複数の領域の各々の前記電力モードを決定することを特徴とする計算機システム。
  3.  請求項1に記載の計算機システムであって、
     前記プロセッサチップに含まれる前記複数のプロセッサコアは、チップ内ネットワークを介して互いに接続され、
     複数のプロセッサチップは、チップ間ネットワークを介して互いに接続され、
     前記複数の領域の各々は、プロセッサコアのコア間通信の属性に基づいて定められ、
     前記コア間通信は、前記プロセッサチップに含まれる前記プロセッサコア間の通信であるチップ内通信と、異なるプロセッサチップに含まれる前記プロセッサコア間の通信であるチップ間通信と、を含み、
     前記所定のプログラムには、前記電力モードを制御する演算部分毎に、当該演算部分における前記複数の領域の各々の前記電力モードを制御するための命令が含まれ、
     前記決定部は、前記所定のプログラムを実行する場合に、前記命令に基づいて前記複数の領域の各々の前記電力モードを決定することを特徴とする計算機システム。
  4.  請求項1に記載の計算機システムであって、
     前記プロセッサチップに含まれる前記複数のプロセッサコアは、チップ内ネットワークを介して互いに接続され、
     複数のプロセッサチップは、チップ間ネットワークを介して互いに接続され、
     前記複数の領域の各々は、プロセッサコアのコア間通信の属性に基づいて定められ、
     前記コア間通信は、前記プロセッサチップに含まれる前記プロセッサコア間の通信であるチップ内通信と、異なるプロセッサチップに含まれる前記プロセッサコア間の通信であるチップ間通信と、を含み、
     前記決定部は、
     前記所定のプログラムの実行中に、前記複数の領域の各々に含まれる前記一つ以上のプロセッサコアから前記演算量及び前記通信データ量を取得し、
     前記複数の領域の各々に含まれる前記一つ以上のプロセッサコアから取得された前記演算量及び前記通信データ量に基づいて、前記複数の領域の各々の前記電力モードを決定することを特徴とする計算機システム。
  5.  請求項2から請求項4のいずれか一つに記載の計算機システムであって、
     前記複数の領域は、前記チップ内通信のみを行う第1の領域と、前記チップ内通信及び前記チップ間通信を行う第2の領域と、を含み、
     前記決定部は、前記第1の領域に含まれる一つ以上のプロセッサコアの前記演算処理の処理時間及び前記コア間通信処理の通信時間の合計値と、前記第2の領域に含まれる一つ以上のプロセッサコアの前記演算処理の処理時間及び前記コア間通信処理の通信時間の合計値との差が小さくなるように、前記第1の領域及び前記第2の領域の各々の前記電力モードを決定することを特徴とする計算機システム。
  6.  請求項5に記載の計算機システムであって、
     前記決定部は、
     前記演算処理の処理時間が短くなるように前記第2の領域の前記電力モードを決定し、
     前記演算処理の処理時間が長くなるように前記第1の領域の前記電力モードを決定することを特徴とする計算機システム。
  7.  請求項6に記載の計算機システムであって、
     前記決定部は、前記プロセッサコアに接続される前記チップ間通信のパスの数が多い順に、当該プロセッサコアを含む前記第2の領域に供給される前記電圧及び前記周波数が高くなるように前記電力モードを決定することを特徴とする計算機システム。
  8.  請求項5に記載の計算機システムであって、
     前記調整部は、前記複数の領域の各々に接続されることを特徴とする計算機システム。
  9.  請求項5に記載の計算機システムであって、
     前記複数の領域の各々には、前記プロセッサコアに前記電圧を供給する電源、及び前記プロセッサコアに前記周波数を供給するクロックジェネレータが接続され、
     前記調整部は、前記複数の領域の各々に接続される前記電源及び前記クロックジェネレータに接続されることを特徴とする計算機システム。
  10.  複数のプロセッサコアを含む、複数のプロセッサチップを備える計算機であって、
     前記複数のプロセッサチップの各々は、一つ以上のプロセッサコアから構成される複数の領域を構成し、
     前記複数のプロセッサコアは、所定のプログラムを実行する演算処理、プロセッサコア間の通信であるコア間通信処理を実行し、
     前記計算機は、
     前記複数の領域の各々に供給する電圧及び周波数を制御する調整部と、
     前記複数の領域の各々に供給する電圧及び周波数の組合せである電力モードを決定し、前記調整部に指示を出力する決定部と、
     を備え、
     前記決定部は、前記複数の領域の各々に含まれる一つ以上のプロセッサコアにおける演算処理の演算量及び通信処理の通信データ量に基づいて、前記複数の領域の各々の前記電力モードを決定することを特徴とする計算機。
  11.  請求項10に記載の計算機であって、
     前記プロセッサチップに含まれる前記複数のプロセッサコアは、チップ内ネットワークを介して互いに接続され、
     前記複数のプロセッサチップは、チップ間ネットワークを介して互いに接続され、
     前記複数の領域の各々は、プロセッサコアのコア間通信の属性に基づいて定められ、
     前記コア間通信は、前記プロセッサチップに含まれる前記プロセッサコア間の通信であるチップ内通信と、異なるプロセッサチップに含まれる前記プロセッサコア間の通信であるチップ間通信と、を含み、
     前記所定のプログラムには、前記電力モードを制御する演算部分毎に、当該演算部分における前記複数の領域の各々の前記電力モードを制御するための命令が含まれ、
     前記決定部は、前記所定のプログラムを実行する場合に、前記命令に基づいて前記複数の領域の各々の前記電力モードを決定することを特徴とする計算機。
  12.  請求項10に記載の計算機であって、
     前記プロセッサチップに含まれる前記複数のプロセッサコアは、チップ内ネットワークを介して互いに接続され、
     前記複数のプロセッサチップは、チップ間ネットワークを介して互いに接続され、
     前記複数の領域の各々は、プロセッサコアのコア間通信の属性に基づいて定められ、
     前記コア間通信は、前記プロセッサチップに含まれる前記プロセッサコア間の通信であるチップ内通信と、異なるプロセッサチップに含まれる前記プロセッサコア間の通信であるチップ間通信と、を含み、
     前記決定部は、
     前記所定のプログラムの実行中に、前記複数の領域の各々に含まれる前記一つ以上のプロセッサコアから前記演算量及び前記通信データ量を取得し、
     前記複数の領域の各々に含まれる前記一つ以上のプロセッサコアから取得された前記演算量及び前記通信データ量に基づいて、前記複数の領域の各々の前記電力モードを決定することを特徴とする計算機。
  13.  請求項11又は請求項12のいずれかに記載の計算機であって、
     前記複数の領域は、前記チップ内通信のみを行う第1の領域と、前記チップ内通信及び前記チップ間通信を行う第2の領域と、を含み、
     前記決定部は、前記第1の領域に含まれる一つ以上のプロセッサコアの前記演算処理の処理時間及び前記コア間通信処理の通信時間の合計値と、前記第2の領域に含まれる一つ以上のプロセッサコアの前記演算処理の処理時間及び前記コア間通信処理の通信時間の合計値との差が小さくなるように、前記第1の領域及び前記第2の領域の各々の前記電力モードを決定することを特徴とする計算機。
  14.  請求項13に記載の計算機であって、
     前記決定部は、前記プロセッサコアに接続される前記チップ間通信のパスの数が多い順に、当該プロセッサコアを含む前記第2の領域に供給される前記電圧及び前記周波数が高くなるように前記電力モードを決定することを特徴とする計算機。
  15.  請求項14に記載の計算機であって、
     前記複数の領域の各々には、前記プロセッサコアに前記電圧を供給する電源、及び前記プロセッサコアに前記周波数を供給するクロックジェネレータが接続され、
     前記調整部は、前記複数の領域の各々に接続される前記電源及び前記クロックジェネレータに接続されることを特徴とする計算機。
PCT/JP2015/064590 2015-05-21 2015-05-21 計算機システム及び計算機 WO2016185599A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/544,027 US10481671B2 (en) 2015-05-21 2015-05-21 Power saving for a computer system and computer based on differences between chip regions in processing and communication times
PCT/JP2015/064590 WO2016185599A1 (ja) 2015-05-21 2015-05-21 計算機システム及び計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/064590 WO2016185599A1 (ja) 2015-05-21 2015-05-21 計算機システム及び計算機

Publications (1)

Publication Number Publication Date
WO2016185599A1 true WO2016185599A1 (ja) 2016-11-24

Family

ID=57319686

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/064590 WO2016185599A1 (ja) 2015-05-21 2015-05-21 計算機システム及び計算機

Country Status (2)

Country Link
US (1) US10481671B2 (ja)
WO (1) WO2016185599A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11126245B2 (en) * 2019-06-21 2021-09-21 Intel Corporation Device, system and method to determine a power mode of a system-on-chip
CN114527862B (zh) * 2022-02-14 2023-10-31 贵州电网有限责任公司 一种调整电力专用芯片功耗的方法、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344162A (ja) * 2005-06-10 2006-12-21 Mitsubishi Electric Corp 並列計算装置
JP2014157601A (ja) * 2013-02-15 2014-08-28 Intel Corp プロセッサの最大動作電圧を動的に制御する方法
JP2014197284A (ja) * 2013-03-29 2014-10-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 自由空間の光インターコネクトでの再構成が可能なマルチコア・ネットワーク

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7568115B2 (en) 2005-09-28 2009-07-28 Intel Corporation Power delivery and power management of many-core processors
US8402290B2 (en) * 2008-10-31 2013-03-19 Intel Corporation Power management for multiple processor cores
JP5293289B2 (ja) 2009-03-11 2013-09-18 富士通株式会社 マルチコアプロセッサ及びその制御方法
US8335884B2 (en) * 2009-07-10 2012-12-18 Brocade Communications Systems, Inc. Multi-processor architecture implementing a serial switch and method of operating same
US8782451B2 (en) * 2010-12-22 2014-07-15 Via Technologies, Inc. Power state synchronization in a multi-core processor
US9304570B2 (en) * 2011-12-15 2016-04-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements
FI126032B (en) * 2013-03-07 2016-05-31 Airo Finland Oy Detection of threats in communication networks
US10339023B2 (en) * 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344162A (ja) * 2005-06-10 2006-12-21 Mitsubishi Electric Corp 並列計算装置
JP2014157601A (ja) * 2013-02-15 2014-08-28 Intel Corp プロセッサの最大動作電圧を動的に制御する方法
JP2014197284A (ja) * 2013-03-29 2014-10-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 自由空間の光インターコネクトでの再構成が可能なマルチコア・ネットワーク

Also Published As

Publication number Publication date
US20170371395A1 (en) 2017-12-28
US10481671B2 (en) 2019-11-19

Similar Documents

Publication Publication Date Title
JP7337053B2 (ja) 超並列ソフトウェア定義ハードウェアシステムにおける静的ブロックスケジューリング
CN111247533B (zh) 用于神经网络加速的机器学习运行时库
US9262799B2 (en) Shared memory eigensolver
Agullo et al. Multifrontal QR factorization for multicore architectures over runtime systems
US20210390460A1 (en) Compute and memory based artificial intelligence model partitioning using intermediate representation
JP4381459B1 (ja) 情報処理装置、粒度調整方法およびプログラム
WO2016185599A1 (ja) 計算機システム及び計算機
US8196146B2 (en) Information processing apparatus, parallel processing optimization method, and program
Dorflinger et al. Hardware and software task scheduling for ARM-FPGA platforms
Artail et al. Speedy cloud: Cloud computing with support for hardware acceleration services
KR20200063962A (ko) 분산 처리 시스템 및 이의 동작 방법
US20210406777A1 (en) Autonomous allocation of deep neural network inference requests in a cluster with heterogeneous devices
JP6083278B2 (ja) 計算システム及びその電力管理方法
Akamine et al. Reconfigurable out-of-order mechanism generator for unstructured grid computation in computational fluid dynamics
WO2013058396A1 (ja) タスク配置装置及びタスク配置方法
JP2012038275A (ja) 取引計算シミュレーションシステム、方法及びプログラム
Li et al. HeteroYARN: a heterogeneous FPGA-accelerated architecture based on YARN
CN113748411A (zh) 动态地优化并行计算的装置和方法
Hu et al. An improved heterogeneous dynamic list schedule algorithm
Thepayasuwan et al. Layout conscious approach and bus architecture synthesis for hardware/software codesign of systems on chip optimized for speed
Xu et al. Generalized GPU acceleration for applications employing finite-volume methods
Shyamala et al. An efficient parallel computing framework for over the obstacle VLSI routing
US11941723B2 (en) Dynamic dispatch for workgroup distribution
US20240111578A1 (en) Hierarchical work scheduling
US20230385043A1 (en) Skip Buffer Splitting

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: 15892598

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15544027

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15892598

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP