WO2018198501A1 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
WO2018198501A1
WO2018198501A1 PCT/JP2018/006036 JP2018006036W WO2018198501A1 WO 2018198501 A1 WO2018198501 A1 WO 2018198501A1 JP 2018006036 W JP2018006036 W JP 2018006036W WO 2018198501 A1 WO2018198501 A1 WO 2018198501A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
fpga
power consumption
information
reconfigurable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2018/006036
Other languages
English (en)
French (fr)
Inventor
博信 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of WO2018198501A1 publication Critical patent/WO2018198501A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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 an information processing apparatus, an information processing method, and a program.
  • An information processing apparatus having a reconfigurable device, a configuration code memory, and a reconfigurable device controller is known (see Patent Document 1).
  • the reconfigurable device realizes the circuit for executing a desired task in accordance with the configuration code so that the circuit can be changed.
  • the configuration code memory stores configuration codes for realizing a plurality of circuits having different characteristics for each task executed by the reconfigurable device.
  • the reconfiguration device controller controls loading of the configuration code to the reconfiguration device, selecting an appropriate circuit to be executed by the reconfiguration device according to the operating state of the system from among a plurality of circuits having different characteristics.
  • a server load distribution method having a plurality of server devices that provide services in response to service requests and a load distribution device that transfers the service requests to any of the server devices (see Patent Document 2).
  • Each server device has means for detecting the server load, and means for comparing the server load with a threshold and notifying the comparison result to the load distribution device.
  • the load distribution apparatus includes means for managing the load status of each server apparatus based on the comparison result notified from each server apparatus, and means for selecting a server apparatus having a low load and transferring a service request.
  • the reconfigurable device can change the circuit, and the power consumption and the heat generation amount change depending on the changed circuit. Therefore, it is difficult to manage the temperature of the reconfigurable device.
  • an object of the present invention is to provide an information processing apparatus, an information processing method, and a program capable of determining whether a circuit scheduled to be added to a reconfigurable circuit can be configured.
  • the information processing apparatus includes at least one reconfigurable circuit and a control unit that controls a circuit configuration of the reconfigurable circuit, and the control unit stores a threshold value for each of the reconfigurable circuits, For each reconfigurable circuit, the circuit to be added can be configured based on the power consumption information based on the information indicating the power consumption of the currently executing circuit, the power consumption of the circuit to be added, and the threshold value. Determine whether or not.
  • it can be determined whether or not a circuit to be added to the reconfigurable circuit can be configured.
  • FIG. 1 is a diagram illustrating a configuration example of an information processing apparatus according to the first embodiment.
  • FIG. 2 is a diagram illustrating a configuration example of the first FPGA server.
  • 3A to 3C are diagrams showing examples of task assignment to FPGAs.
  • FIG. 4 is a diagram illustrating a functional configuration example of the information processing apparatus.
  • FIG. 5 is a sequence diagram illustrating an example of an information processing method of the information processing apparatus.
  • 6A is a time chart showing the threshold values of the FPGAs of the first to fifth FPGA servers
  • FIG. 6B is a time chart showing the power consumption of the FPGAs of the first to fifth FPGA servers.
  • FIG. 6C is a time chart showing the average power consumption of the FPGAs of the first to fifth FPGA servers, and FIG.
  • FIG. 6D is the total power consumption of the whole FPGA of the first to fifth FPGA servers.
  • 4 is a time chart showing the maximum power consumption of one FPGA.
  • FIG. 7A is a time chart showing an example of the threshold value of the FPGA of the first to fifth FPGA servers according to the second embodiment, and
  • FIG. 7B is a diagram of the FPGA of the first to fifth FPGA servers. It is a time chart which shows power consumption.
  • FIG. 1 is a diagram illustrating a configuration example of an information processing apparatus according to the first embodiment.
  • the information processing apparatus includes a client 100, a management server 110, a network 120, and first to fifth field programmable gate array (FPGA) servers 1. 30a to 130e. Note that the number of FPGA servers 130a to 130e is not limited to five.
  • the client 100 is a computer, and includes a central processing unit (CPU) 101, a random access memory (RAM) 102, and a hard disk drive (HDD) unit 103.
  • the CPU 101 reads a program from the HDD unit 103, expands the read program in the RAM 102, and executes the program expanded in the RAM 102.
  • the client 100 can request the management server 110 to execute the task, and obtain the task execution result from the management server 110.
  • the management server 110 is a computer and includes a CPU 111, a RAM 112, and an HDD unit 113.
  • the CPU 111 reads a program from the HDD unit 113, expands the read program in the RAM 112, and executes the program expanded in the RAM 112.
  • the management server 110 assigns tasks to the first to fifth FPGA servers 130a to 130e via the network 120, acquires task execution results from the first to fifth FPGA servers 130a to 130e, and executes the execution results. Is output to the client 100.
  • the first FPGA server 130a is a computer, and includes a CPU 131a, a RAM 132a, an HDD unit 133a, and an FPGA 134a.
  • the second to fifth FPGA servers 130b to 130e are computers, and include CPUs 131b to 131e, RAMs 132b to 132e, HDD units 133b to 133e, and FPGAs 134b to 134e, respectively.
  • the CPUs 131a to 131e read the programs from the HDD units 133a to 133e, respectively, expand the read programs in the RAMs 132a to 132e, and execute the programs expanded in the RAMs 132a to 132e.
  • the FPGAs 134a to 134e are reconfigurable circuits whose circuits can be changed.
  • Each of the first to fifth FPGA servers 130a to 130e configures a circuit corresponding to the task requested from the management server 110 in the FPGAs 134a to 134e, executes the circuit, and transmits the execution result data to the network 120. To the management server 110.
  • FIG. 2 is a diagram illustrating a configuration example of the first FPGA server 130a.
  • the configuration of the first FPGA server 130a will be described as an example, but the configurations of the second to fifth FPGA servers 130b to 130e are the same as the configuration of the first FPGA server 130a.
  • the first FPGA server 130a includes a CPU 131a, a RAM 132a, an HDD unit 133a, and an FPGA 134a.
  • the HDD unit 133a stores circuit information (configuration codes) 201 to 208 and circuit attached information 211 to 218 for configuring the task circuit in the FPGA 134a.
  • the circuit information 201 is circuit information for configuring the task A circuit on the top of the FPGA 134a.
  • the circuit information 202 is circuit information for configuring the task A circuit second from the top of the FPGA 134a.
  • the circuit information 203 is circuit information for configuring the task A circuit third from the top of the FPGA 134a.
  • the circuit information 204 is circuit information for configuring the task A circuit at the bottom of the FPGA 134a.
  • the circuit information 205 is circuit information for configuring the task B circuit at the upper left of the FPGA 134a.
  • the circuit information 206 is circuit information for configuring the task B circuit on the upper right side of the FPGA 134a.
  • the circuit information 207 is circuit information for configuring the task C circuit under the FPGA 134a.
  • the circuit information 208 is circuit information for configuring the task C circuit on the FPGA 134a.
  • the circuit attached information 211 to 218 is information attached to the circuit information 201 to 208, respectively.
  • the circuit ancillary information 211 to 218 includes a circuit size 221 and an operating frequency 222, respectively.
  • the circuit ancillary information 211 to 214 includes a circuit size 221 and an operating frequency 222 of the circuit of task A, respectively.
  • the circuit ancillary information 215 and 216 include the circuit size 221 and the operating frequency 222 of the task B circuit, respectively.
  • the circuit ancillary information 217 and 218 include the circuit size 221 and the operating frequency 222 of the task C circuit, respectively.
  • the management server 110 generates circuit information 201 to 208 and circuit attached information 211 to 128, and outputs the circuit information 201 to 208 and circuit attached information 211 to 128 to the first to fifth FPGA servers 130a to 130e.
  • the CPUs 131a to 131e respectively write circuit information 201 to 208 and circuit attached information 211 to 128 in the HDD units 133a to 133e.
  • FIG. 3A shows an example of FPGAs 134a to 134c before task C is assigned.
  • the first FPGA 134a includes four task A circuits and one task B circuit.
  • two task B circuits are configured.
  • No circuit is configured in the third FPGA 134c.
  • the management server 110 can add the circuit of task C to the FPGA 134b or 134c using the circuit information 207 or 208 of task C.
  • FIG. 3B is a diagram illustrating an example in which the management server 110 assigns a task C circuit to the FPGA 134b.
  • the management server 110 assigns task C to the second FPGA server 130b.
  • the second FPGA server 130b writes the circuit information 207 in the HDD unit 133b to the FPGA 134b.
  • a task C circuit is additionally configured in the FPGA 134b.
  • FIG. 3C is a diagram showing an example in which the management server 110 assigns two task C circuits to the FPGA 134c.
  • the management server 110 assigns two tasks C to the third FPGA server 130c.
  • the third FPGA server 130c writes the circuit information 207 and 208 in the HDD unit 133c to the FPGA 134c.
  • two tasks C circuits are additionally configured in the FPGA 134c.
  • the FPGAs 134a to 134e become too high in temperature, there is a possibility of performance degradation and failure rate increase due to thermal noise.
  • the FPGAs 134a to 134e have power consumption (heat generation amount) greatly different depending on a circuit to be written, so that temperature management is difficult. If the temperature management of the FPGAs 134a to 134e is not performed, the FPGAs 134a to 134e may ignite. When tasks concentrate on a part of the plurality of FPGAs 134a to 134e, the part of the FPGA becomes very hot. Therefore, the management server 110 efficiently operates the first to fifth FPGA servers 130a to 130e by appropriately assigning tasks to the first to fifth FPGA servers 130a to 130e.
  • the management server 110 suppresses the overall power consumption of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e, and the task concentrates on one FPGA, resulting in an abnormally high temperature. Assign tasks to avoid.
  • FIG. 4 is a diagram illustrating a functional configuration example of the information processing apparatus.
  • the information processing apparatus includes a client 100, a management server 110, and first to fifth FPGA servers 130a to 130e.
  • the management server 110 has a module 400.
  • the module 400 is a program module executed by the CPU 111.
  • the module 400 includes an FPGA execution management unit 401, an execution FPGA server selection unit 402, an execution availability inquiry unit 403, a task reception unit 404, and a threshold control unit 405.
  • the first FPGA server 130a includes a RAM 132a, an HDD unit 133a, an FPGA 134a, and a module 410.
  • the RAM 132a has a threshold storage unit 413.
  • the HDD unit 133 a includes a circuit information storage unit 411 and a circuit attached information storage unit 412.
  • the circuit information storage unit 411 stores the circuit information 201 to 208 in FIG.
  • the circuit attached information storage unit 412 stores circuit attached information 211 to 218 shown in FIG.
  • the module 410 is a module of a program executed by the CPU 131a.
  • the module 410 includes an execution result processing unit 414, an execution control unit 415, a circuit information management unit 416, a circuit information writing unit 417, a power consumption calculation unit 418, and an execution availability determination unit 419.
  • the circuit information writing unit 417 is a control unit, and can control the circuit configuration of the FPGA 134a by writing circuit information to the FPGA 134a.
  • the second to fifth FPGA servers 130b to 130e have the same configuration as that of the first FPGA server 130a.
  • FIG. 5 is a sequence diagram illustrating an example of an information processing method of the information processing apparatus.
  • a case will be described as an example where the first to fifth FPGA servers 130a to 130e are in operation and the sixth FPGA server is inactive.
  • the sixth FPGA server has the same configuration as the first to fifth FPGA servers 130a to 130e.
  • the management server 110 instructs the first to fifth FPGA servers 130a to 130e to set initial values (maximum values) of the threshold values 601a to 601e in order by the threshold control unit 405.
  • the first FPGA server 130 a writes the initial value of the threshold 601 a in the threshold storage unit 413 by the execution availability determination unit 419.
  • each of the second to fifth FPGA servers 130b to 130e causes the threshold storage unit 41 to execute the execution determination unit 419. 3 is written with initial values of threshold values 601b to 601e.
  • the management server 110 causes the threshold value control unit 405 to decrease the threshold values 601a to 601e with respect to the first to fifth FPGA servers 130a to 130e at regular intervals as shown in FIG. 6A.
  • the thresholds 601a to 601e are instructed to be updated in order.
  • This update instruction corresponds to steps S507 and S509. Details thereof will be described later.
  • Each of the first to fifth FPGA servers 130a to 130e receives an update instruction, and updates the threshold value 601a to 601e of the threshold value storage unit 413 so that the threshold value 601a to 601e decreases by the execution availability determination unit 419. As shown in FIG.
  • the management server 110 instructs the threshold values 601a to 601e to be set to initial values (maximum values) in order when the threshold values 601a to 601e become 0, as shown in FIG. 6A.
  • the threshold values 601a to 601e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e periodically change as shown in FIG.
  • step S501 the client 100 outputs a task C execution request to the management server 110. Then, the management server 110 receives an execution request for the task C by the task receiving unit 404.
  • step S502 the management server 110 causes the execution availability inquiry unit 403 to output an inquiry about whether task C can be executed to the first to fifth FPGA servers 130a to 130e in operation.
  • each of the first to fifth FPGA servers 130a to 130e causes the power consumption calculation unit 418 to add information indicating the power consumption of the circuit currently being executed for each FPGA 134a to 134e, and to be added.
  • Information indicating the power consumption of the circuit of task C is added to obtain information indicating the overall power consumption.
  • the execution control unit 415 outputs information on the two tasks B currently being executed to the circuit information management unit 416.
  • the circuit attachment information storage unit 412 outputs the circuit attachment information 215 and 216 of the two tasks B to the power consumption calculation unit 418 under the control of the circuit information management unit 416.
  • the power consumption calculation unit 418 calculates power consumption by multiplying the circuit size 221 and the operating frequency 222 for each of the circuit attached information 215 and 216, and adds the power consumption to obtain the two currently executed. The power consumption of the circuit of task B is obtained.
  • the power consumption calculation unit 418 obtains the power consumption of the circuit of the task C to be added by multiplying the circuit size 221 of the circuit ancillary information 217 of the task C to be added by the operating frequency 222.
  • the power consumption calculation unit 418 adds the power consumption of the circuits of the two tasks B that are currently being executed and the power consumption of the circuit of the task C that is scheduled to be added, and determines whether or not the entire power consumption can be executed. Output to.
  • the other FPGA servers 130a and 130c to 130e similarly calculate the overall power consumption.
  • step S504 the first to fifth FPGA servers 130a to 130e output the power consumption calculation unit 418 from the threshold values 601a to 601e stored in the threshold value storage unit 413 by the execution determination unit 419, respectively.
  • the total power consumption is subtracted, and the result of the subtraction is output to the execution FPGA server selection unit 402 of the management server 110 as an execution propriety answer.
  • the subtraction result is a positive value, indicating that the FPGA can execute the circuit of the additional task C.
  • the subtraction result is a negative value, indicating that the FPGA cannot execute the circuit of the additional task C.
  • the execution determination unit 419 of each of the first to fifth FPGA servers 130a to 130e is a determination unit, and information indicating the power consumption of the circuit of the task currently being executed and the task to be added for each of the FPGAs 134a to 134e. Whether or not the circuit to be added can be configured is determined based on the power consumption information based on the information indicating the power consumption of the circuit and the threshold values 601a to 601e.
  • step S505 the management server 110 causes the execution FPGA server selection unit 402 to have the largest value among the subtraction results of the first to fifth FPGA servers 130a to 130e, and the subtraction result is a positive value.
  • the task C execution request is output to the execution control unit 415 of the FPGA server 130b. That is, the management server 110 instructs the circuit 134 of the task C to be added to the FPGA 134b of the second FPGA server 130b.
  • the management server 110 uses the execution FPGA server selection unit 402 to change to the sixth FPGA server that is suspended.
  • an execution request for task C is output, and the circuit configuration of task C is instructed to the FPGA of the sixth FPGA server.
  • the management server 110 sets an initial value of the threshold for the suspended sixth FPGA server by the threshold control unit 405. Note that the sixth FPGA server being suspended can reduce the overall power consumption by not assigning tasks as much as possible.
  • step S506 the second FPGA server 130b instructs the execution control unit 415 to start executing task C.
  • the circuit information writing unit 417 reads the circuit information 207 of task C from the circuit information storage unit 411, and writes the circuit information 207 to the FPGA 134b.
  • a circuit for task C is added to the FPGA 134b.
  • the FPGA 134b starts executing the circuits of two tasks B and one task C.
  • the process returns to step S502, and the management server 110 again outputs a task C execution possibility inquiry. That's fine. That is, the management server 110 may repeat the execution availability inquiry process by the number of parallel processes.
  • step S507 the management server 110 uses the threshold control unit 405 to set threshold values for the first to fifth FPGA servers 130a to 130e after a predetermined time has elapsed since the initial setting of the threshold values 601a to 601e.
  • An update instruction for decreasing 601a to 601e is output.
  • step S508 the first to fifth FPGA servers 130a to 130e in operation are updated by the execution availability determination unit 419 so that the threshold value of the threshold value storage unit 413 decreases. Then, each of the first to fifth FPGA servers 130a to 130e calculates the power consumption of the circuit of the task currently being executed by the power consumption calculation unit 418 and outputs the calculated power consumption to the execution determination unit 419. To do. Then, the first to fifth FPGA servers 130a to 130e respectively subtract the power consumption output from the power consumption calculation unit 418 from the threshold values 601a to 601e stored in the threshold value storage unit 413 by the execution availability determination unit 419. If the subtraction result is a positive value, execution of the task circuits of the FPGAs 134a to 134e is continued.
  • step S509 the management server 110 causes the threshold control unit 405 to respectively perform the first to fifth FPGA servers 130a to 130e after a predetermined time has elapsed since the update of the thresholds 601a to 601e in step S507.
  • An update instruction for decreasing the threshold values 601a to 601e is output.
  • step S510 the first to fifth FPGA servers 130a to 130 in operation.
  • e is updated so that the threshold value of the threshold value storage unit 413 decreases.
  • the first to fifth FPGA servers 130a to 130e respectively subtract the power consumption output from the power consumption calculation unit 418 from the threshold values 601a to 601e stored in the threshold value storage unit 413 by the execution availability determination unit 419.
  • the first, third to fifth FPGA servers 130a and 130c to 130e respectively execute the task circuits of the FPGAs 134a and 134c to 134e when the subtraction result is a positive value by the execution determination unit 419. Let it continue.
  • step S511 the second FPGA server 130b compares the power consumption with the threshold value 601b by the execution determination unit 419, and determines that the power consumption is larger than the threshold value 601b and the subtraction result is a negative value.
  • step S512 the second FPGA server 130b causes the execution availability determination unit 419 to reduce the power consumption from the threshold value 601b in order from the task circuit with the largest power consumption among the circuits of the task being executed. Until execution is stopped.
  • the execution result processing unit 414 writes the intermediate result data of the task circuit of the stopped FPGA 134b and the recovery point indicating the stop point in the RAM 132b.
  • step S513 the second FPGA server 130b causes the execution result processing unit 414 to output a task execution request including the intermediate result data and the recovery point to the FPGA execution management unit 401 of the management server 110.
  • the second FPGA server 130b changes the threshold value of the threshold value storage unit 132a to 0 as shown by the threshold value 610 in FIG. 6A by the execution determination unit 419 and completes the execution of the task circuit.
  • the threshold value of the threshold value storage unit 132a is set to the initial value.
  • the threshold value 610 in FIG. 6A indicates the threshold value of the FPGA 134c of the third FPGA server 130c, but the threshold value of the FPGA 134b of the second FPGA server 130b is the same.
  • step S514 the FPGA execution management unit 401 outputs the task execution request to the task reception unit 404.
  • the task reception unit 404 outputs a task execution request to the execution availability inquiry unit 403.
  • the management server 110 outputs a task execution permission inquiry to the first, third to fifth FPGA servers 130a and 130c to 130e by the execution permission inquiry section 403.
  • step S515 the first, third to fifth FPGA servers 130a, 130c to 130e are currently being executed for each of the FPGAs 134a, 134c to 134e by the execution determination unit 419 in the same manner as in step S503.
  • Information indicating the power consumption of the circuit and the information indicating the power consumption of the circuit of the task to be added are added to obtain information indicating the overall power consumption.
  • step S516 the first, third to fifth FPGA servers 130a, 130c to 130e are caused to execute the threshold value 601a stored in the threshold value storage unit 413 by the execution availability determination unit 419, similarly to step S504.
  • the total power consumption output from the power consumption calculation unit 418 is subtracted from 601c to 601e, and the subtraction result is output to the execution FPGA server selection unit 402 of the management server 110 as an execution availability answer.
  • step S517 the management server 110 has the largest value among the subtraction results of the first, third to fifth FPGA servers 130a, 130c to 130e by the execution FPGA server selection unit 402, and performs subtraction.
  • a task execution request is output to the execution control unit 415 of the first FPGA server 130a whose result is a positive value.
  • the execution request includes the intermediate result data and the recovery point.
  • the management server 110 causes the execution FPGA server selection unit 402 to execute the suspended sixth FPGA.
  • the task execution request is output to the server.
  • the management server 110 sets an initial value of the threshold for the suspended sixth FPGA server by the threshold control unit 405.
  • step S518, the first FPGA server 130a reads the circuit information of the task from the circuit information storage unit 411 by the circuit information writing unit 417, and writes the circuit information in the FPGA 134a. Then, the first FPGA server 130a causes the execution control unit 415 to input the intermediate result data to the FPGA 134a and instruct to resume execution from the recovery point of the task. Thereby, a task circuit is added to the FPGA 134a. The FPGA 134a resumes execution of the task circuit.
  • the first FPGA server 130 a When the execution of the task circuit of the FPGA 134 a is completed, the first FPGA server 130 a outputs the execution result data of the FPGA 134 a to the FPGA execution management unit 401 of the management server 110 by the execution result processing unit 414.
  • the FPGA execution management unit 401 outputs execution result data to the client 100 via the task reception unit 404.
  • FIG. 6A is a time chart showing threshold values 601a to 601e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e.
  • FIG. 6B corresponds to FIG. 6A and is a time chart showing power consumption 602a to 602e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e.
  • the management server 110 updates the threshold values 601a to 601e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e by rotation. As a result, the management server 110 can, on average, make a task execution request to the first to fifth FPGA servers 130a to 130e by rotation. As shown in FIG.
  • the power consumptions 602a to 602e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e are not biased and are compared with the first to fifth FPGA servers 130a to 130e. It can be seen that the tasks are distributed almost evenly.
  • FIG. 6C is a time chart showing average power consumption of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e.
  • the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e have substantially the same average power consumption and the same amount of heat generation.
  • the management server 110 can prevent the task from being concentrated on some of the first to fifth FPGA servers 130a to 130e and resulting in an abnormally high temperature.
  • the FPGAs 134a to 134e can prevent performance degradation and failure rate increase due to high temperatures.
  • FIG. 6D is a time chart showing the total power consumption 604 of the entire FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e and the maximum power consumption 605 of one FPGA. It can be seen that the management server 110 reduces the total power consumption 604 of the entire FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e, and reduces the maximum power consumption 605 of one FPGA. . As a result, it is possible to prevent the task from being concentrated on the FPGAs of some of the FPGA servers and causing an abnormally high temperature.
  • each of the first to fifth FPGA servers 130a to 130e compares the power consumption with the threshold value by the execution determination unit 419 to determine whether or not the circuits of tasks scheduled to be added to the FPGAs 134a to 134e can be configured. Can be judged.
  • the management server 110 can output an execution feasibility inquiry only to the FPGA server to which tasks can be added, according to the free space of the FPGAs 134a to 134e.
  • the management server 110 grasps the circuit of the task being executed by the FPGAs 134a to 134e of the FPGA servers 130a to 130e.
  • the FPGA 134a of the first FPGA server 130a in FIG. 3A has a small empty space and cannot add a task C circuit.
  • the management server 110 outputs an execution availability inquiry to an FPGA server other than the first FPGA server 130a.
  • the plurality of FPGA servers 130a to 130e have the plurality of FPGAs 134a to 134e has been described as an example.
  • one FPGA server may have the plurality of FPGAs 134a to 134e.
  • each of the FPGA servers 130a to 130e may have a plurality of FPGAs.
  • FIG. 7A is a time chart showing an example of threshold values 701a to 701e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e according to the second embodiment.
  • This embodiment differs from the first embodiment in the threshold control method of the management server 110.
  • the difference of the present embodiment from the first embodiment will be described with reference to FIGS. 4 and 5.
  • step S505 when all the subtraction results of the first to fifth FPGA servers 130a to 130e in operation are negative values, the management server 110 uses the execution FPGA server selection unit 402 to An execution request for task C is output to the suspended sixth FPGA server.
  • the management server 110 uses the threshold control unit 405 to When the sum of the threshold values 701a to 701e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e in operation is smaller than the first value, as shown in FIG. An instruction to increase the smallest threshold value 701a among the threshold values 701a to 701e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e to the threshold value 702 is output to the first FPGA server 130a.
  • the threshold control unit 405 sets the threshold 701a to the threshold 702 within a range where the sum of the thresholds 701a to 701e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e in operation does not exceed the first value.
  • the instruction to increase is output.
  • the first FPGA server 130a increases the threshold value of the threshold value storage unit 413 by the execution possibility determination unit 419.
  • the first FPGA server 130a causes the execution determination unit 419 to subtract the overall power consumption output from the power consumption calculation unit 418 from the threshold value 702 stored in the threshold value storage unit 413, and the subtraction result is obtained.
  • the data is output to the execution FPGA server selection unit 402 of the management server 110.
  • the management server 110 When the subtraction result of the first FPGA server 130a is a positive value, the management server 110 outputs an execution request for task C to the execution control unit 415 of the first FPGA server 130a. To do. Thereafter, the first FPGA server 130a starts executing the circuit of the task C as in step S506.
  • step S517 if all of the subtraction results of the first, third to fifth FPGA servers 130a, 130c to 130e are negative values, the management server 110 causes the threshold control unit 405 to execute the first, third, If the sum of the threshold values 701a and 701c to 701e of the FPGAs 134a and 134c to 134e of the fifth FPGA servers 130a and 130c to 130e is smaller than the first value, the first, third to fifth FPGA servers 130a, An instruction to increase the threshold value 701a of the FPGA 134a of the first FPGA server 130a among the threshold values 701a and 701c to 701e of the FPGAs 134a and 130c to 134e of 130c to 130e is output to the first FPGA server 130a.
  • the threshold control unit 405 increases the threshold 701a in a range where the sum of the thresholds 701a to 701e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e in operation does not exceed the first value. Output instructions.
  • the first FPGA server 130a increases the threshold value of the threshold value storage unit 413 by the execution possibility determination unit 419.
  • the first FPGA server 130a causes the execution determination unit 419 to subtract the overall power consumption output from the power consumption calculation unit 418 from the threshold value 702 stored in the threshold value storage unit 413, and the subtraction result is obtained.
  • the data is output to the execution FPGA server selection unit 402 of the management server 110.
  • the management server 110 When the subtraction result of the first FPGA server 130a is a positive value, the management server 110 outputs a task execution request to the execution control unit 415 of the first FPGA server 130a. . Thereafter, in step S508, the first FPGA server 130a resumes execution of the task circuit.
  • FIG. 7B corresponds to FIG. 7A and is a time chart showing power consumption 703a to 703e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e.
  • the management server 110 temporarily increases the threshold 702 in order to be able to cope with temporary task concentration. As a result, the power consumption 704 temporarily increases.
  • the power consumption 703a to 703e of the FPGAs 134a to 134e of the first to fifth FPGA servers 130a to 130e is not biased, and Tasks are distributed almost uniformly to the FPGAs 134a to 134e of the fifth FPGA servers 130a to 130e.
  • This embodiment can be realized by a computer executing a program. Further, a computer-readable recording medium in which the above program is recorded and a computer program product such as the above program can also be applied as an embodiment of the present invention.
  • a recording medium for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.

Landscapes

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

Abstract

【課題】再構成可能回路に追加予定の回路を構成可能か否かを判断することができる情報処理装置を提供することを課題とする。 【解決手段】情報処理装置は、少なくとも1つの再構成可能回路(134a)と、前記再構成可能回路の回路構成を制御する制御部(413、417、419)とを有し、前記制御部は、前記再構成可能回路毎の閾値を記憶し、前記再構成可能回路毎に、現在実行中の回路の消費電力を示す情報と追加予定の回路の消費電力を示す情報に基づく消費電力情報と、前記閾値とを基に、追加予定の回路を構成可能か否かを判断する。

Description

情報処理装置、情報処理方法及びプログラム
 本発明は、情報処理装置、情報処理方法及びプログラムに関する。
 再構成デバイスとコンフィグレーションコードメモリと再構成デバイスコントローラとを有する情報処理装置が知られている(特許文献1参照)。再構成デバイスは、コンフィグレーションコードにしたがって所望のタスクを実行するための回路を変更可能に実現する。コンフィグレーションコードメモリは、再構成デバイスで実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードが格納される。再構成デバイスコントローラは、異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じて再構成デバイスに実行させる適切な回路を選択する、再構成デバイスに対するコンフィグレーションコードのロードを制御する。
 また、サービス要求に応答してサービスを提供する複数のサーバ装置と、サービス要求をいずれかのサーバ装置へ転送する負荷分散装置とを有するサーバ負荷分散方式が知られている(特許文献2参照)。各サーバ装置は、サーバ負荷を検知する手段と、サーバ負荷を閾値と比較し、比較結果を負荷分散装置へ通知する手段とを有する。負荷分散装置は、各サーバ装置から通知される比較結果に基づいて各サーバ装置の負荷状況を管理する手段と、負荷の重くないサーバ装置を選択してサービス要求を転送する手段とを有する。
特開2007-179358号公報 特開2012-88797号公報
 再構成デイバスが高温になると、性能低下及び故障率上昇の可能性がある。しかし、再構成デバイスは、回路を変更可能であり、変更された回路により消費電力及び発熱量が変わる。そのため、再構成デバイスの温度を管理することが困難である。
 1つの側面では、本発明の目的は、再構成可能回路に追加予定の回路を構成可能か否かを判断することができる情報処理装置、情報処理方法及びプログラムを提供することである。
 情報処理装置は、少なくとも1つの再構成可能回路と、前記再構成可能回路の回路構成を制御する制御部とを有し、前記制御部は、前記再構成可能回路毎の閾値を記憶し、前記再構成可能回路毎に、現在実行中の回路の消費電力を示す情報と追加予定の回路の消費電力を示す情報に基づく消費電力情報と、前記閾値とを基に、追加予定の回路を構成可能か否かを判断する。
 1つの側面では、再構成可能回路に追加予定の回路を構成可能か否かを判断することができる。
図1は、第1の実施形態による情報処理装置の構成例を示す図である。 図2は、第1のFPGAサーバの構成例を示す図である。 図3(A)~(C)は、FPGAに対するタスクの割り当て例を示す図である。 図4は、情報処理装置の機能構成例を示す図である。 図5は、情報処理装置の情報処理方法の例を示すシーケンス図である。 図6(A)は第1~第5のFPGAサーバのFPGAの閾値を示すタイムチャートであり、図6(B)は第1~第5のFPGAサーバのFPGAの消費電力を示すタイムチャートであり、図6(C)は第1~第5のFPGAサーバのFPGAの平均消費電力を示すタイムチャートであり、図6(D)は第1~第5のFPGAサーバのFPGAの全体の合計消費電力と1個当たりのFPGAの最大消費電力を示すタイムチャートである。 図7(A)は第2の実施形態による第1~第5のFPGAサーバのFPGAの閾値の例を示すタイムチャートであり、図7(B)は第1~第5のFPGAサーバのFPGAの消費電力を示すタイムチャートである。
(第1の実施形態)
 図1は、第1の実施形態による情報処理装置の構成例を示す図である。情報処理装置は、クラウドサービスを実現するため、クライアント100と、管理サーバ110と、ネットワーク120と、第1~第5のFPGA(field programmable gate array)サーバ1
30a~130eとを有する。なお、FPGAサーバ130a~130eの数は、5個に限定されない。
 クライアント100は、コンピュータであり、中央処理ユニット(CPU)101と、ランダムアクセスメモリ(RAM)102と、ハードディスクドライブ(HDD)ユニット103とを有する。CPU101は、HDDユニット103からプログラムを読み出し、読み出したプログラムをRAM102に展開し、RAM102に展開されたプログラムを実行する。クライアント100は、管理サーバ110にタスクの実行を依頼し、管理サーバ110からタスクの実行の結果を得ることができる。
 管理サーバ110は、コンピュータであり、CPU111と、RAM112と、HDDユニット113とを有する。CPU111は、HDDユニット113からプログラムを読み出し、読み出したプログラムをRAM112に展開し、RAM112に展開されたプログラムを実行する。管理サーバ110は、ネットワーク120を介して、第1~第5のFPGAサーバ130a~130eにタスクを割り当て、第1~第5のFPGAサーバ130a~130eからタスクの実行結果を取得し、その実行結果をクライアント100に出力する。
 第1のFPGAサーバ130aは、コンピュータであり、CPU131aと、RAM132aと、HDDユニット133aと、FPGA134aとを有する。同様に、第2~第5のFPGAサーバ130b~130eは、それぞれ、コンピュータであり、CPU131b~131eと、RAM132b~132eと、HDDユニット133b~133eと、FPGA134b~134eとを有する。CPU131a~131eは、それぞれ、HDDユニット133a~133eからプログラムを読み出し、読み出したプログラムをRAM132a~132eに展開し、RAM132a~132eに展開されたプログラムを実行する。FPGA134a~134eは、回路を変更可能な再構成可能回路である。第1~第5のFPGAサーバ130a~130eは、それぞれ、管理サーバ110から依頼されたタスクに対応する回路をFPGA134a~134eに構成し、その回路を実行し、その実行の結果のデータをネットワーク120を介して管理サーバ110に出力する。
 図2は、第1のFPGAサーバ130aの構成例を示す図である。第1のFPGAサーバ130aの構成を例に説明するが、第2~第5のFPGAサーバ130b~130eの構成も第1のFPGAサーバ130aの構成と同様である。
 第1のFPGAサーバ130aは、CPU131aと、RAM132aと、HDDユニット133aと、FPGA134aとを有する。HDDユニット133aは、タスクの回路をFPGA134aに構成するための回路情報(コンフィグレーションコード)201~208と、回路付属情報211~218を記憶する。
 回路情報201は、タスクAの回路をFPGA134aの一番上に構成するための回路情報である。回路情報202は、タスクAの回路をFPGA134aの上から二番目に構成するための回路情報である。回路情報203は、タスクAの回路をFPGA134aの上から三番目に構成するための回路情報である。回路情報204は、タスクAの回路をFPGA134aの一番下に構成するための回路情報である。
 回路情報205は、タスクBの回路をFPGA134aの左上に構成するための回路情報である。回路情報206は、タスクBの回路をFPGA134aの右上に構成するための回路情報である。
 回路情報207は、タスクCの回路をFPGA134aの下に構成するための回路情報である。回路情報208は、タスクCの回路をFPGA134aの上に構成するための回路情報である。
 回路付属情報211~218は、それぞれ、回路情報201~208に付属する情報である。回路付属情報211~218は、それぞれ、回路サイズ221と動作周波数222を含む。回路付属情報211~214は、それぞれ、タスクAの回路の回路サイズ221と動作周波数222を含む。回路付属情報215及び216は、それぞれ、タスクBの回路の回路サイズ221と動作周波数222を含む。回路付属情報217及び218は、それぞれ、タスクCの回路の回路サイズ221と動作周波数222を含む。
 管理サーバ110は、回路情報201~208及び回路付属情報211~128を生成し、回路情報201~208及び回路付属情報211~128を第1~第5のFPGAサーバ130a~130eに出力する。第1~第5のFPGAサーバ130a~130eでは、それぞれ、CPU131a~131eは、HDDユニット133a~133eに回路情報201~208及び回路付属情報211~128を書き込む。
 図3(A)は、タスクCの割り当て前のFPGA134a~134cの例を示す図である。第1のFPGA134aには、4個のタスクAの回路と1個のタスクBの回路が構成されている。第2のFPGA134bには、2個のタスクBの回路が構成されている。第3のFPGA134cには、何も回路が構成されていない。管理サーバ110は、タスクCの回路情報207又は208を用いて、FPGA134b又は134cに、タスクCの回路を追加することができる。
 図3(B)は、管理サーバ110がFPGA134bにタスクCの回路を割り当てた例を示す図である。管理サーバ110は、第2のFPGAサーバ130bにタスクCを割り当てる。すると、第2のFPGAサーバ130bは、HDDユニット133b内の回路情報207をFPGA134bに書き込む。すると、FPGA134bには、タスクCの回路が追加構成される。
 図3(C)は、管理サーバ110がFPGA134cに2個のタスクCの回路を割り当てた例を示す図である。管理サーバ110は、第3のFPGAサーバ130cに2個のタスクCを割り当てる。すると、第3のFPGAサーバ130cは、HDDユニット133c内の回路情報207及び208をFPGA134cに書き込む。すると、FPGA134cには、2個のタスクCの回路が追加構成される。
 FPGA134a~134eは、高温になりすぎると、熱雑音による性能低下及び故障率上昇の可能性がある。FPGA134a~134eは、書き込まれる回路により、消費電力(発熱量)が大きく異なるため、温度管理が困難である。FPGA134a~134eの温度管理を行わない場合、FPGA134a~134eが発火する可能性がある。複数のFPGA134a~134eのうちの一部のFPGAにタスクが集中すると、その一部のFPGAが非常に高温になってしまう。そのため、管理サーバ110は、第1~第5のFPGAサーバ130a~130eに適切にタスクを割り当てることにより、効率よく第1~第5のFPGAサーバ130a~130eを運用する。具体的には、管理サーバ110は、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの全体の消費電力を抑え、かつ1つのFPGAにタスクが集中して、異常高温になることを避けるように、タスクを割り当てる。
 図4は、情報処理装置の機能構成例を示す図である。情報処理装置は、クライアント100と、管理サーバ110と、第1~第5のFPGAサーバ130a~130eを有する。管理サーバ110は、モジュール400を有する。モジュール400は、CPU111が実行するプログラムのモジュールである。モジュール400は、FPGA実行管理部401と、実行FPGAサーバ選択部402と、実行可否問い合わせ部403と、タスク受付部404と、閾値制御部405とを有する。
 第1のFPGAサーバ130aは、RAM132aと、HDDユニット133aと、FPGA134aと、モジュール410とを有する。RAM132aは、閾値記憶部413を有する。HDDユニット133aは、回路情報記憶部411と、回路付属情報記憶部412とを有する。回路情報記憶部411は、図2の回路情報201~208を記憶する。回路付属情報記憶部412は、図2の回路付属情報211~218を記憶する。
 モジュール410は、CPU131aが実行するプログラムのモジュールである。モジュール410は、実行結果処理部414と、実行制御部415と、回路情報管理部416と、回路情報書き込み部417と、消費電力計算部418と、実行可否判定部419とを有する。回路情報書き込み部417は、制御部であり、回路情報をFPGA134aに書き込むことにより、FPGA134aの回路構成を制御することができる。
 第2~第5のFPGAサーバ130b~130eは、それぞれ、上記の第1のFPGAサーバ130aと同様の構成を有する。
 図5は、情報処理装置の情報処理方法の例を示すシーケンス図である。ここで、第1~第5のFPGAサーバ130a~130eが稼働中であり、第6のFPGAサーバが休止中である場合を例に説明する。第6のFPGAサーバは、第1~第5のFPGAサーバ130a~130eと同様の構成を有する。
 管理サーバ110は、閾値制御部405により、図6(A)に示すように、第1~第5のFPGAサーバ130a~130eに対して閾値601a~601eの初期値(最大値)を順に設定指示する。第1のFPGAサーバ130aは、実行可否判定部419により、閾値記憶部413に閾値601aの初期値を書き込む。同様に、第2~第5のFPGAサーバ130b~130eは、それぞれ、実行可否判定部419により、閾値記憶部41
3に閾値601b~601eの初期値を書き込む。その後、管理サーバ110は、閾値制御部405により、図6(A)に示すように、一定時間毎に、第1~第5のFPGAサーバ130a~130eに対して閾値601a~601eが減少するように、閾値601a~601eを順に更新指示する。この更新指示は、ステップS507及びS509に対応する。その詳細は、後述する。第1~第5のFPGAサーバ130a~130eは、それぞれ、更新指示を入力すると、実行可否判定部419により、閾値記憶部413の閾値601a~601eが減少するように更新する。管理サーバ110は、閾値制御部405により、図6(A)に示すように、それぞれ、閾値601a~601eが0になると、閾値601a~601eを初期値(最大値)に順に設定指示する。第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの閾値601a~601eは、図6(A)のように、周期的に変化する。
 ステップS501では、クライアント100は、管理サーバ110に対して、タスクCの実行依頼を出力する。すると、管理サーバ110は、タスク受付部404により、そのタスクCの実行依頼を受け付ける。
 次に、ステップS502では、管理サーバ110は、実行可否問い合わせ部403により、稼働中の第1~第5のFPGAサーバ130a~130eに対して、タスクCの実行可否問い合わせを出力する。
 次に、ステップS503では、第1~第5のFPGAサーバ130a~130eは、それぞれ、消費電力計算部418により、FPGA134a~134e毎に、現在実行中の回路の消費電力を示す情報と、追加予定のタスクCの回路の消費電力を示す情報とを加算し、全体の消費電力を示す情報を得る。
 例えば、図3(A)のFPGA134bの例を説明する。実行制御部415は、現在実行中の2個のタスクBの情報を回路情報管理部416に出力する。回路付属情報記憶部412は、回路情報管理部416の制御により、2個のタスクBの回路付属情報215及び216を消費電力計算部418に出力する。消費電力計算部418は、回路付属情報215及び216毎に、回路サイズ221と動作周波数222を乗算することにより消費電力を計算し、それらの消費電力を加算することにより、現在実行中の2個のタスクBの回路の消費電力を得る。次に、消費電力計算部418は、追加予定のタスクCの回路付属情報217の回路サイズ221と動作周波数222を乗算することにより、追加予定のタスクCの回路の消費電力を得る。次に、消費電力計算部418は、現在実行中の2個のタスクBの回路の消費電力と、追加予定のタスクCの回路の消費電力を加算し、全体の消費電力を実行可否判定部419に出力する。
 第2のFPGAサーバ130bの例を説明したが、他のFPGAサーバ130a、130c~130eも同様に、全体の消費電力を計算する。
 次に、ステップS504では、第1~第5のFPGAサーバ130a~130eは、それぞれ、実行可否判定部419により、閾値記憶部413に記憶されている閾値601a~601eから消費電力計算部418が出力する全体の消費電力を減算し、その減算結果を実行可否回答として管理サーバ110の実行FPGAサーバ選択部402に出力する。
 全体の消費電力が閾値より小さい場合には、減算結果が正値であり、FPGAが追加タスクCの回路を実行可能であることを示す。全体の消費電力が閾値より大きい場合には、減算結果が負値であり、FPGAが追加タスクCの回路を実行不可能であることを示す。
 第1~第5のFPGAサーバ130a~130eの実行可否判定部419は、それぞれ
、判断部であり、FPGA134a~134e毎に、現在実行中のタスクの回路の消費電力を示す情報と追加予定のタスクの回路の消費電力を示す情報に基づく消費電力情報と、閾値601a~601eとを基に、追加予定の回路を構成可能か否かを判断する。
 ステップS505では、管理サーバ110は、実行FPGAサーバ選択部402により、第1~第5のFPGAサーバ130a~130eの減算結果の中で最も大きな値を持ち、かつ減算結果が正値である第2のFPGAサーバ130bの実行制御部415にタスクCの実行依頼を出力する。すなわち、管理サーバ110は、第2のFPGAサーバ130bのFPGA134bに、追加予定のタスクCの回路の構成を指示する。
 なお、稼働中の第1~第5のFPGAサーバ130a~130eの減算結果のすべてが負値である場合、管理サーバ110は、実行FPGAサーバ選択部402により、休止中の第6のFPGAサーバに対して、タスクCの実行依頼を出力し、第6のFPGAサーバのFPGAにタスクCの回路の構成を指示する。その際、管理サーバ110は、閾値制御部405により、休止中の第6のFPGAサーバに対して、閾値の初期値設定を行う。なお、休止中の第6のFPGAサーバは、可能な限りタスクを割り当てない方が、全体の消費電力を低減することができる。
 次に、ステップS506では、第2のFPGAサーバ130bは、実行制御部415により、タスクCの実行開始を指示する。回路情報書き込み部417は、回路情報記憶部411からタスクCの回路情報207を読み出し、回路情報207をFPGA134bに書き込む。これにより、図3(B)に示すように、FPGA134bには、タスクCの回路が追加される。FPGA134bは、2個のタスクBと1個のタスクCの回路の実行を開始する。
 なお、図3(C)のFPGA134cのように、2個のタスクCの回路を並列処理させたい場合には、ステップS502に戻り、再び、管理サーバ110は、タスクCの実行可否問い合わせを出力すればよい。すなわち、管理サーバ110は、実行可否問い合わせ処理を並列処理数だけ繰り返し行えばよい。
 次に、ステップS507では、管理サーバ110は、閾値制御部405により、それぞれ、閾値601a~601eの初期値設定から一定時間経過後に、第1~第5のFPGAサーバ130a~130eに対して、閾値601a~601eを減少させるための更新指示を出力する。
 次に、ステップS508では、稼働中の第1~第5のFPGAサーバ130a~130eは、実行可否判定部419により、閾値記憶部413の閾値が減少するように更新する。そして、第1~第5のFPGAサーバ130a~130eは、それぞれ、消費電力計算部418により、上記と同様に、現在実行中のタスクの回路の消費電力を計算して実行可否判定部419に出力する。そして、第1~第5のFPGAサーバ130a~130eは、それぞれ、実行可否判定部419により、閾値記憶部413に記憶されている閾値601a~601eから消費電力計算部418が出力する消費電力を減算し、その減算結果が正値である場合には、FPGA134a~134eのタスクの回路の実行を継続させる。
 次に、ステップS509では、管理サーバ110は、閾値制御部405により、それぞれ、ステップS507の閾値601a~601eの更新から一定時間経過後に、第1~第5のFPGAサーバ130a~130eに対して、閾値601a~601eを減少させるための更新指示を出力する。
 次に、ステップS510では、稼働中の第1~第5のFPGAサーバ130a~130
eは、ステップS508と同様に、閾値記憶部413の閾値が減少するように更新する。そして、第1~第5のFPGAサーバ130a~130eは、それぞれ、実行可否判定部419により、閾値記憶部413に記憶されている閾値601a~601eから消費電力計算部418が出力する消費電力を減算する。第1、第3~第5のFPGAサーバ130a、130c~130eは、それぞれ、実行可否判定部419により、その減算結果が正値である場合に、FPGA134a、134c~134eのタスクの回路の実行を継続させる。
 ステップS511では、第2のFPGAサーバ130bは、実行可否判定部419により、消費電力を閾値601bと比較し、消費電力が閾値601bより大きく、減算結果が負値であると判定する。その場合、ステップS512では、第2のFPGAサーバ130bは、実行可否判定部419により、実行中のタスクの回路のうちの最も消費電力が大きいタスクの回路から順に、消費電力が閾値601bより小さくなるまで、実行を停止させる。第2のFPGAサーバ130bは、実行結果処理部414により、停止したFPGA134bのタスクの回路の途中結果データと停止ポイントを示すリカバリポイントをRAM132bに書き込む。
 次に、ステップS513では、第2のFPGAサーバ130bは、実行結果処理部414により、上記の途中結果データ及びリカバリポイントを含むタスク実行依頼を管理サーバ110のFPGA実行管理部401に出力する。
 この際、第2のFPGAサーバ130bは、実行可否判定部419により、図6(A)の閾値610のように、閾値記憶部132aの閾値を0に変更し、タスクの回路の実行が完了すると、閾値記憶部132aの閾値を初期値に設定する。なお、図6(A)の閾値610は、第3のFPGAサーバ130cのFPGA134cの閾値を示すが、第2のFPGAサーバ130bのFPGA134bの閾値も同様である。
 次に、ステップS514では、FPGA実行管理部401は、そのタスク実行依頼をタスク受付部404に出力する。タスク受付部404は、実行可否問い合わせ部403にタスク実行依頼を出力する。管理サーバ110は、実行可否問い合わせ部403により、第1、第3~第5のFPGAサーバ130a、130c~130eに対して、タスクの実行可否問い合わせを出力する。
 次に、ステップS515では、第1、第3~第5のFPGAサーバ130a、130c~130eは、実行可否判定部419により、ステップS503と同様に、FPGA134a、134c~134e毎に、現在実行中の回路の消費電力を示す情報と、追加予定のタスクの回路の消費電力を示す情報とを加算し、全体の消費電力を示す情報を得る。
 次に、ステップS516では、第1、第3~第5のFPGAサーバ130a、130c~130eは、実行可否判定部419により、ステップS504と同様に、閾値記憶部413に記憶されている閾値601a、601c~601eから消費電力計算部418が出力する全体の消費電力を減算し、その減算結果を実行可否回答として管理サーバ110の実行FPGAサーバ選択部402に出力する。
 次に、ステップS517では、管理サーバ110は、実行FPGAサーバ選択部402により、第1、第3~第5のFPGAサーバ130a、130c~130eの減算結果の中で最も大きな値を持ち、かつ減算結果が正値である第1のFPGAサーバ130aの実行制御部415にタスクの実行依頼を出力する。その実行依頼は、上記の途中結果データ及びリカバリポイントを含む。
 なお、第1、第3~第5のFPGAサーバ130a、130c~130eの減算結果のすべてが負値である場合、管理サーバ110は、実行FPGAサーバ選択部402により、休止中の第6のFPGAサーバに対して、タスクの実行依頼を出力する。その際、管理サーバ110は、閾値制御部405により、休止中の第6のFPGAサーバに対して、閾値の初期値設定を行う。
 次に、ステップS518では、第1のFPGAサーバ130aは、回路情報書き込み部417により、回路情報記憶部411からタスクの回路情報を読み出し、その回路情報をFPGA134aに書き込む。そして、第1のFPGAサーバ130aは、実行制御部415により、FPGA134aに対して途中結果データを入力し、タスクのリカバリポイントからの実行再開を指示する。これにより、FPGA134aには、タスクの回路が追加される。FPGA134aは、タスクの回路の実行を再開する。
 第1のFPGAサーバ130aは、FPGA134aのタスクの回路の実行が完了すると、実行結果処理部414により、FPGA134aの実行結果データを管理サーバ110のFPGA実行管理部401に出力する。FPGA実行管理部401は、タスク受付部404を介して、クライアント100に実行結果データを出力する。
 図6(A)は、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの閾値601a~601eを示すタイムチャートである。図6(B)は、図6(A)に対応し、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの消費電力602a~602eを示すタイムチャートである。管理サーバ110は、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの閾値601a~601eをローテーションにより更新する。これにより、管理サーバ110は、第1~第5のFPGAサーバ130a~130eに対して、ローテーションにより、平均的にタスクの実行依頼をすることができる。図6(B)に示すように、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの消費電力602a~602eは、偏りがなく、第1~第5のFPGAサーバ130a~130eに対してタスクがほぼ均等に分散して割り当てられていることが分かる。
 図6(C)は、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの平均消費電力を示すタイムチャートである。第1~第5のFPGAサーバ130a~130eのFPGA134a~134eは、平均消費電力が相互にほぼ同じであり、発熱量も相互にほぼ同じである。管理サーバ110は、第1~第5のFPGAサーバ130a~130eのうちの一部のFPGAサーバにタスクが集中して、異常高温になることを防止することができる。FPGA134a~134eは、高温による性能低下及び故障率上昇を防止することができる。
 図6(D)は、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの全体の合計消費電力604と1個当たりのFPGAの最大消費電力605を示すタイムチャートである。管理サーバ110は、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの全体の合計消費電力604を低減し、かつ1個当たりのFPGAの最大消費電力605を低減していることが分かる。これにより、一部のFPGAサーバのFPGAにタスクが集中して、異常高温になることを防止することができる。
 また、FPGA134a~134eを冷却するためのファンを設けることが考えられる。しかし、ファンを設けると、消費電力が増加してしまう。本実施形態は、ファンを設けないので、低消費電力で、FPGA134a~134eの異常高温を防止することができる。
 また、第1~第5のFPGAサーバ130a~130eは、それぞれ、実行可否判定部419により、消費電力を閾値と比較することにより、FPGA134a~134eに追加予定のタスクの回路を構成可能か否かを判断することができる。
 なお、ステップS502及びS514では、管理サーバ110は、FPGA134a~134eの空きスペースに応じて、タスクを追加可能なFPGAサーバにのみ実行可否問い合わせを出力することができる。管理サーバ110は、FPGAサーバ130a~130eのFPGA134a~134eが実行中のタスクの回路を把握している。例えば、図3(A)の第1のFPGAサーバ130aのFPGA134aは、空きスペースが狭く、タスクCの回路を追加することができない。この場合、管理サーバ110は、第1のFPGAサーバ130a以外のFPGAサーバに実行可否問い合わせを出力する。
 また、上記では、複数のFPGAサーバ130a~130eがそれぞれ複数のFPGA134a~134eを有する場合を例に説明したが、1つのFPGAサーバが複数のFPGA134a~134eを有していてもよい。また、各FPGAサーバ130a~130eがそれぞれ複数のFPGAを有していてもよい。
(第2の実施形態)
 図7(A)は、第2の実施形態による第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの閾値701a~701eの例を示すタイムチャートである。本実施形態は、第1の実施形態に対し、管理サーバ110の閾値制御方法が異なる。以下、図4及び図5を参照しながら、本実施形態が第1の実施形態と異なる点を説明する。
 第1の実施形態では、ステップS505において、稼働中の第1~第5のFPGAサーバ130a~130eの減算結果のすべてが負値である場合、管理サーバ110は、実行FPGAサーバ選択部402により、休止中の第6のFPGAサーバに対して、タスクCの実行依頼を出力する。
 これに対し、本実施形態では、ステップS505において、稼働中の第1~第5のFPGAサーバ130a~130eの減算結果のすべてが負値である場合、管理サーバ110は、閾値制御部405により、稼働中の第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの閾値701a~701eの合計が第1の値より小さい場合には、図7(A)に示すように、稼働中の第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの閾値701a~701eのうちの最も小さい閾値701aを閾値702に増加させる指示を第1のFPGAサーバ130aに出力する。ここで、閾値制御部405は、稼働中の第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの閾値701a~701eの合計が第1の値を超えない範囲で、閾値701aを閾値702に増加させる指示を出力する。
 すると、第1のFPGAサーバ130aは、実行可否判定部419により、閾値記憶部413の閾値を増加させる。次に、第1のFPGAサーバ130aは、実行可否判定部419により、閾値記憶部413に記憶されている閾値702から消費電力計算部418が出力する全体の消費電力を減算し、その減算結果を管理サーバ110の実行FPGAサーバ選択部402に出力する。
 管理サーバ110は、実行FPGAサーバ選択部402により、第1のFPGAサーバ130aの減算結果が正値である場合には、第1のFPGAサーバ130aの実行制御部415にタスクCの実行依頼を出力する。その後、第1のFPGAサーバ130aは、ス
テップS506と同様に、タスクCの回路の実行を開始する。
 また、ステップS517では、第1、第3~第5のFPGAサーバ130a、130c~130eの減算結果のすべてが負値である場合、管理サーバ110は、閾値制御部405により、第1、第3~第5のFPGAサーバ130a、130c~130eのFPGA134a、134c~134eの閾値701a、701c~701eの合計が第1の値より小さい場合には、第1、第3~第5のFPGAサーバ130a、130c~130eのFPGA134a、134c~134eの閾値701a、701c~701eのうちの最も小さい第1のFPGAサーバ130aのFPGA134aの閾値701aを増加させる指示を第1のFPGAサーバ130aに出力する。ここで、閾値制御部405は、稼働中の第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの閾値701a~701eの合計が第1の値を超えない範囲で、閾値701aを増加させる指示を出力する。
 すると、第1のFPGAサーバ130aは、実行可否判定部419により、閾値記憶部413の閾値を増加させる。次に、第1のFPGAサーバ130aは、実行可否判定部419により、閾値記憶部413に記憶されている閾値702から消費電力計算部418が出力する全体の消費電力を減算し、その減算結果を管理サーバ110の実行FPGAサーバ選択部402に出力する。
 管理サーバ110は、実行FPGAサーバ選択部402により、第1のFPGAサーバ130aの減算結果が正値である場合には、第1のFPGAサーバ130aの実行制御部415にタスクの実行依頼を出力する。その後、ステップS508では、第1のFPGAサーバ130aは、タスクの回路の実行を再開する。
 図7(B)は、図7(A)に対応し、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの消費電力703a~703eを示すタイムチャートである。管理サーバ110は、一時的なタスクの集中に対応可能にするため、閾値702を一時的に増加させる。これにより、消費電力704が一時的に増加する。ただし、その時以外では、本実施形態では、第1の実施形態と同様に、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eの消費電力703a~703eは、偏りがなく、第1~第5のFPGAサーバ130a~130eのFPGA134a~134eに対してタスクがほぼ均等に分散して割り当てられる。
 本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体及び上記のプログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
 なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100 クライアント
101,111,131a~131e CPU
102,112,132a~132e RAM
103,113,133a~133e HDDユニット
110 管理サーバ
120 ネットワーク
130a~130e FPGAサーバ
134a~134e FPGA

Claims (10)

  1.  少なくとも1つの再構成可能回路と、
     前記再構成可能回路の回路構成を制御する制御部とを有し、
     前記制御部は、前記再構成可能回路毎の閾値を記憶し、前記再構成可能回路毎に、現在実行中の回路の消費電力を示す情報と追加予定の回路の消費電力を示す情報に基づく消費電力情報と、前記閾値とを基に、追加予定の回路を構成可能か否かを判断することを特徴とする情報処理装置。
  2.  さらに、前記再構成可能回路毎の判断の結果に応じて、前記少なくとも1つの再構成可能回路のうちの1つの再構成可能回路に前記追加予定の回路の構成を指示する選択部を有することを特徴とする請求項1に記載の情報処理装置。
  3.  前記閾値は、一定時間毎に減少するように更新されることを特徴とする請求項1又は2に記載の情報処理装置。
  4.  前記制御部は、前記閾値が更新された場合に、前記閾値が更新された再構成可能回路について、現在実行中の回路の消費電力を示す情報を前記閾値と比較し、前記現在実行中の回路の消費電力を示す情報が前記閾値より大きい場合には、前記現在実行中の回路のうちの少なくとも1つの回路の実行を停止し、
     さらに、前記停止した回路の実行を他の再構成可能回路に再開させる実行管理部を有することを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。
  5.  前記選択部は、前記少なくとも1つの再構成可能回路のうちで前記閾値から前記消費電力情報を減算した値が最も小さい再構成可能回路に前記追加予定の回路の構成を指示することを特徴とする請求項2に記載の情報処理装置。
  6.  前記選択部は、稼働中の前記再構成可能回路のうちで前記消費電力情報が前記閾値より小さい再構成可能回路がない場合には、休止中の再構成可能回路に前記追加予定の回路の構成を指示することを特徴とする請求項2又は5に記載の情報処理装置。
  7.  さらに、稼働中の前記再構成可能回路のうちで前記消費電力情報が前記閾値より小さい再構成可能回路がない場合、かつ前記少なくとも1つの再構成可能回路の閾値の合計が第1の値より小さい場合には、前記少なくとも1つの再構成可能回路の閾値のうちの最も小さい閾値を増加させる閾値制御部を有することを特徴とする請求項2又は5に記載の情報処理装置。
  8.  前記制御部は、回路サイズと動作周波数の乗算により、前記消費電力を示す情報を得ることを特徴とする請求項1~7のいずれか1項に記載の情報処理装置。
  9.  少なくとも1つの再構成可能回路を有する情報処理装置の情報処理方法であって、
     前記情報処理装置が有する記憶部が、前記再構成可能回路毎の閾値を記憶し、
     前記情報処理装置が有する判断部が、前記再構成可能回路毎に、現在実行中の回路の消費電力を示す情報と追加予定の回路の消費電力を示す情報に基づく消費電力情報と、前記閾値とを基に、追加予定の回路を構成可能か否かを判断することを特徴とする情報処理方法。
  10.  少なくとも1つの再構成可能回路毎の閾値を設定し、
     前記再構成可能回路毎に、現在実行中の回路の消費電力を示す情報と追加予定の回路の消費電力を示す情報に基づく消費電力情報と、前記閾値とを基に、追加予定の回路を構成
    可能か否かを判断する、
     処理をコンピュータに実行させるためのプログラム。
PCT/JP2018/006036 2017-04-26 2018-02-20 情報処理装置、情報処理方法及びプログラム Ceased WO2018198501A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017087673A JP6810356B2 (ja) 2017-04-26 2017-04-26 情報処理装置、情報処理方法及びプログラム
JP2017-087673 2017-04-26

Publications (1)

Publication Number Publication Date
WO2018198501A1 true WO2018198501A1 (ja) 2018-11-01

Family

ID=63919684

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/006036 Ceased WO2018198501A1 (ja) 2017-04-26 2018-02-20 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
JP (1) JP6810356B2 (ja)
WO (1) WO2018198501A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7750304B2 (ja) * 2021-12-08 2025-10-07 Ntt株式会社 計算機及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195945A (ja) * 2004-12-14 2006-07-27 Matsushita Electric Ind Co Ltd 電子装置及びそのピーク電力制御方法
JP2009271649A (ja) * 2008-05-02 2009-11-19 Fujitsu Ltd データ処理装置、データ処理方法およびデータ処理プログラム
US20100026340A1 (en) * 2008-02-29 2010-02-04 Altera Corporation User-Accessible Freeze-Logic for Dynamic Power Reduction and Associated Methods
JP2016115979A (ja) * 2014-12-11 2016-06-23 キヤノン株式会社 画像処理装置、その制御方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195945A (ja) * 2004-12-14 2006-07-27 Matsushita Electric Ind Co Ltd 電子装置及びそのピーク電力制御方法
US20100026340A1 (en) * 2008-02-29 2010-02-04 Altera Corporation User-Accessible Freeze-Logic for Dynamic Power Reduction and Associated Methods
JP2009271649A (ja) * 2008-05-02 2009-11-19 Fujitsu Ltd データ処理装置、データ処理方法およびデータ処理プログラム
JP2016115979A (ja) * 2014-12-11 2016-06-23 キヤノン株式会社 画像処理装置、その制御方法及びプログラム

Also Published As

Publication number Publication date
JP2018185691A (ja) 2018-11-22
JP6810356B2 (ja) 2021-01-06

Similar Documents

Publication Publication Date Title
CN107003706B (zh) 非暂时性计算机可读存储介质和用于管理作业的装置
US9189273B2 (en) Performance-aware job scheduling under power constraints
US9195484B1 (en) Dynamic logical zone assignment
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
US9379937B2 (en) Policy-based resource management with target-driven remediation on server
JP6107801B2 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
US10171572B2 (en) Server pool management
US9697081B2 (en) Storage control device and data recovery method
JP6810356B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5377231B2 (ja) ジョブネット制御プログラムおよびジョブネット制御装置
JP5939620B2 (ja) コンピュータシステム、サーバ装置、負荷分散方法、及びプログラム
JP6894266B2 (ja) 情報処理装置、管理制御装置のプログラム更新制御方法及びプログラム更新制御プログラム
JP2015094976A (ja) 情報処理装置、情報処理方法、及び、プログラム
JP5121347B2 (ja) ネットワークアプリケーションの利用制限システム、利用制限方法、及びプログラム。
US10819607B2 (en) Reducing power consumption of a compute node experiencing a bottleneck
CN108293040B (zh) 转送控制装置、车辆和转送控制方法
JP2011233057A (ja) マルチプロセッサシステム、マルチプロセッサの制御方法およびマルチプロセッサの制御方法のプログラム
JP6874594B2 (ja) 電源管理装置,ノード電源管理方法およびノード電源管理プログラム
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
JP2010186347A (ja) ジョブスケジューリングシステム、ジョブスケジューリング方法及びプログラム
JP5741301B2 (ja) 通信制御装置、情報処理装置及びパス選択方法
CN111435925A (zh) 快照数据传输方法及装置
JP6373236B2 (ja) 計算機
JP6721860B2 (ja) 情報処理システム
US20150135188A1 (en) System and method for controlling execution of jobs performed by plural information processing devices

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18790192

Country of ref document: EP

Kind code of ref document: A1