WO2011142227A1 - コンピュータ・システム、方法及びプログラム - Google Patents

コンピュータ・システム、方法及びプログラム Download PDF

Info

Publication number
WO2011142227A1
WO2011142227A1 PCT/JP2011/059833 JP2011059833W WO2011142227A1 WO 2011142227 A1 WO2011142227 A1 WO 2011142227A1 JP 2011059833 W JP2011059833 W JP 2011059833W WO 2011142227 A1 WO2011142227 A1 WO 2011142227A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
resource allocation
phase
stream format
resource
Prior art date
Application number
PCT/JP2011/059833
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 CN201180023797.1A priority Critical patent/CN102947798B/zh
Priority to JP2012514749A priority patent/JP5520369B2/ja
Priority to US13/695,558 priority patent/US9794138B2/en
Priority to GB1221843.4A priority patent/GB2495417B/en
Priority to DE112011100714.0T priority patent/DE112011100714B4/de
Publication of WO2011142227A1 publication Critical patent/WO2011142227A1/ja
Priority to US13/684,380 priority patent/US9798696B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation

Definitions

  • the present invention relates to a technology for dynamically allocating resources (also referred to as resources) in a computer system according to the state of network traffic and the like, and more particularly to a technology for switching the configuration of resource allocation.
  • Japanese Patent Application Laid-Open Nos. 2005-174201 and 2007-48315 disclose a resource table including servers, networks, and storages, an application table indicating components of an application operating on these resources, and a resource application to the application. And a performance measurement item template that generates a measurement item of performance information from the configuration information, a performance measurement engine that measures the performance information measurement item by the performance measurement engine, and a resource allocation change from the configuration information It is disclosed that a resource allocation change rule used in the above is generated, and that resource allocation is changed according to the generated resource allocation change rule and configuration information.
  • the resource allocation change rule includes a threshold for the measured performance index.
  • JP 2008-191737 A provides an application execution system capable of operating the system stably without being affected by server performance and line quality and without newly securing a space.
  • the application execution device executes the application.
  • a switching unit that operates independently of the execution unit and transfers the received execution request to the execution unit or the proxy server according to the state of the execution unit.
  • the proxy server executes the proxy application based on the execution request.
  • an object of the present invention is to reduce a system stop time associated with a configuration change when the system configuration is changed according to a situation in a computer dynamic resource allocation system.
  • the system of the present invention collects traffic data while the system is operating as a pre-process over a certain period of time. Then, some typical patterns are extracted from the collected traffic data.
  • the system of the present invention is then individually, for each of those typical patterns, individually but using, for example, the technique described in Japanese Patent Application No. 2009-271308 of the present applicant. Create a stream program and save it for later reference.
  • the system of the present invention measures traffic data periodically or at any point in time and compares the resulting pattern with the typical pattern described above.
  • the stream program corresponding to the closest typical pattern is selected as the next phase.
  • the task switching cost, the data transfer cost between resources, and the like are considered by the computer processing.
  • the idle time task in the previous phase is gradually shifted to the stream program in the phase as a substitute task, so that the program stop time is suppressed.
  • the selection of the proxy task is performed by measuring and storing in advance the cost including the pipeline pitch of the related task, the switching cost between the related tasks, and the data transmission / reception time between the resources between the related phases. In consideration of the current phase and the next face, migration of used resources, and migration of execution tasks, the cost is reduced.
  • the proxy task in a dynamic resource allocation system using a computer, when shifting from the original configuration to the next configuration according to the situation, the proxy task is selected from the original configuration and processing is performed in the middle. It is possible to reduce the idle time of the program and reduce the program stop time.
  • FIG. 1 is a block diagram showing a hardware configuration for carrying out the present invention.
  • the present invention is not so limited, in particular this example uses a multi-core multi-processor router appliance 100 such as PRISM.
  • a multi-core processor 104 a multi-core processor 106, a RAM 108, an Ethernet stack & Ethernet port 110, and a flash ROM 112 are connected to the bus 102.
  • the multi-core processors 104 and 106 are not limited to this, but a network processor, for example, an Intel (R) IXP 425orNetwork Processor can be used.
  • the network processor incorporates functions such as Ethernet (R) MAC and cryptographic processing.
  • the multi-core processor 104 includes a plurality of cores 104a, 104b, 104c, and 104d.
  • the cores 104a, 104b, 104c, and 104d are coupled to the bus 102 via the L2 cache 104e.
  • Each of the cores 104a, 104b, 104c, and 104d can run a plurality of threads.
  • boxes S1 and S2 are shown in the core 104a, which are individual threads S1 and S2, respectively. Since the same applies to the cores 104b, 104c, and 104d, individual descriptions are omitted.
  • a management thread Sn executing a main function according to the present invention is running on the core 106d of the multi-core processor 106.
  • the RAM 108 is used by the multi-core processor 104 and the multi-core processor 106 to temporarily hold or read the processing result value.
  • Ethernet stack & Ethernet port 110 is connected to another computer system, a network attached storage (NAS), a storage area network (SAN), another router, and the like.
  • the multi-core multi-processor router appliance 100 is responsible for communicating data with these devices.
  • the statistical information collection module 202 has a function of collecting the traffic arriving at the Ethernet stack & Ethernet port 110 every time.
  • a conventional typical method for collecting traffic there is a method based on the SNMP protocol.
  • commercial tools such as “NetFlow Tracker” available from Fluke Networks may be used.
  • the information collected here is the ratio of traffic such as e-mail, FTP, video, and web.
  • the configuration table 208 has an entry corresponding to each traffic pattern of the aspect pattern group 206.
  • the configuration table 208 includes the table shown in FIG. 6 described in the specification of Japanese Patent Application No. 2009-271308 related to the present applicant. Since it is equivalent, it is shown again as FIG.
  • UDOP is a user-defined operator in stream programming.
  • Ethernet TM protocol stack for example, but not limited to, Ethernet TM protocol stack, IP protocol stack, TCP protocol stack, UDP Protocol stack, SSL protocol stack, virus scan, XML accelerator, etc.
  • the kernel is one or a plurality of modules prepared for each UDOP.
  • the size of the one-dimensional array of packets is different.
  • the pitch is the pipeline pitch, that is, the processing time of one stage of the pipeline processing.
  • the resource is the number of CPUs used. In the resource column of FIG. 3, in the case of this embodiment, the number of threads in the system of FIG. 1 is described.
  • the entry of the configuration table 208 is created by a predetermined processing module (not shown) based on the system environment 209 including hardware and software connected to the Ethernet stack & Ethernet port 110.
  • a predetermined processing module (not shown) based on the system environment 209 including hardware and software connected to the Ethernet stack & Ethernet port 110.
  • the compiler 210 refers to the entry in the configuration table 208 for each aspect pattern of the aspect pattern group 206 and creates a stream format code for each aspect pattern.
  • the compiler 210 creates a stream format code based on each aspect pattern. More detailed processing will be described in detail later.
  • the stream format code describes a task for executing processing and hardware resources for executing the task in a graph format.
  • a specific processing program (not shown) generates a transition table 214 between stream format codes corresponding to each aspect pattern.
  • the transition table 214 may be generated by the compiler 210.
  • a collection of stream format codes is referred to as a stream format code group 212.
  • the aspect pattern measurement module 216 preferably performs processing of counting data processed by the first task of the stream format code, which is lighter than the statistical information collection module 202, for each type. Use to measure the modal pattern. For example, the measurement is performed at a cycle suitable for the nature of the traffic handled by the router appliance 100.
  • the aspect pattern comparison module 218 has a function of comparing the aspect pattern measured by the aspect pattern measurement module 216 with each aspect pattern of the aspect pattern group 206. As a result of the comparison, the stream format code corresponding to the closest aspect pattern is selected from the stream format code group 212 by the stream format code selection module 220.
  • the switching module 222 has a function of switching from the stream format code that has been executed in the execution environment 224 until now to the stream format code selected based on the comparison result of the aspect pattern comparison module 218, and executing it in the execution environment 224.
  • the switching module 222 reduces the program stop time by setting an appropriate proxy task when switching from the current stream format code to the next stream format code. Details of this processing will be described later using a flowchart and the like.
  • the modal patterns 702, 704,... 706 may be traffic information patterns extracted at regular intervals, or a plurality of traffic information patterns extracted at regular intervals may be collected, for example, by the K-average method. You may take out a representative thing from the cluster obtained by clustering.
  • the modal patterns (phases) 702, 704... 706 are preferably stored in the RAM 108 as the modal pattern group 206. A unique phase ID is assigned to each of the appearance patterns 702, 704,.
  • the compiler 210 refers to the items of the configuration table 208 and generates a stream format code for each aspect pattern (phase) of the aspect pattern group 206. In other words, a resource mapping based on stream processing is derived for each phase.
  • FIG. 8 shows an example of a base stream program.
  • an IP protocol stack is connected to an Ethernet protocol stack, and from there, a TCP protocol stack and a UDP protocol stack.
  • the TCP protocol stack and the UDP protocol stack are connected to the virus scan and also to the SSL protocol stack, the SSL protocol stack is connected to the virus scan, and the virus scan is , Connected to an XML accelerator.
  • each processing element of the stream program is not considered in FIG. 8, the load applied to each processing element of the stream program corresponding to the specific aspect of the traffic information as in the aspect 902 of FIG. Changes. That is, in FIG. 9, it is assumed that the size of the box surrounding each processing element represents a load.
  • FIG. 10 shows a state in which the load distribution applied to each processing element is different with respect to another aspect 1002 of traffic information. That is, when the aspect of the traffic information changes, too much load is applied to each specific processing element of the stream program, which becomes a bottleneck, and the overall processing speed decreases.
  • the processing is optimized by resource mapping.
  • the generated stream format code group 212 is preferably stored in the RAM 108.
  • the compiler 210 performs filtering in step 1102. That is, only an executable pattern is extracted from the given hardware configuration and configuration table 208, and an optimization table (A) is created.
  • step 1106 the compiler 210 determines whether or not the execution pattern group (B) satisfies the given resource constraint.
  • step 1106 when the compiler 210 determines that the execution pattern group (B) satisfies the given resource constraint, this process is completed.
  • step 1106 determines in step 1106 that the execution pattern group (B) does not satisfy the given resource constraints. If the compiler 210 determines in step 1106 that the execution pattern group (B) does not satisfy the given resource constraints, the process proceeds to step 1108, where the execution pattern groups in the execution pattern group (B) are sorted in order of pipeline pitch. Create a completed list (C).
  • step 1110 the compiler 210 selects UDOP (D) having an execution pattern with the shortest pipeline pitch from the list (C).
  • the compiler 210 determines whether or not an execution pattern (next candidate) (E) with less resource consumption exists in the optimization table (A) for UDOP (D).
  • step 1114 the compiler 210 determines whether the pipeline pitch of the execution pattern (next candidate) (E) is smaller than the longest value in the list (C) for UDOP (D).
  • step 1116 the compiler 210 assigns the execution pattern (next candidate) (E) as a new execution pattern of UDOP (D), and updates the execution pattern group (B).
  • step 1116 the process returns to the determination in step 1106.
  • step 1112 determines whether the determination in step 1112 is negative. If the determination in step 1112 is negative, the process proceeds to step 1118, where the compiler 210 removes the UDOP from (C).
  • Step 1126 the compiler 210 assigns the execution pattern (G) as a new execution pattern, updates the execution pattern group (B), and proceeds to Step 806. Otherwise, in step 1128, the UDOP is removed from (F), and the process returns to step 1122.
  • FIG. 14 is a diagram showing an example of optimization by replacement of such execution pattern groups.
  • D4 is replaced with D5 to solve the resource constraint.
  • each stream format code is preferably stored in the RAM 108 as a stream format code group 212.
  • a unique task ID is assigned to each task of each stream format code.
  • This process is executed by a predetermined thread running on the processor 104 or the processor 106.
  • start time of task t in phase b start (b, t) max ⁇ start (b, p): p ⁇ Pre (t) ⁇ + pitch pitch: Pipeline pitch (execution time of each task)
  • a resource set R and phases a and b are input.
  • the resource set R includes a resource ID and a communication delay between the resources.
  • Phases a and b include a task ID, a resource ID in charge of each task, a set of preceding and subsequent tasks for each task, and an execution time for each task. This corresponds to step 508 in FIG.
  • a list Tb is created by sorting the tasks of phase b (more strictly speaking, tasks in the stream graph corresponding to phase b) in ascending order of task start times.
  • the task start time is defined in the above * 1.
  • step 1506 the first task of Tb is placed at t.
  • Step 1508 to Step 1510, Step 1512, Step 1514, and Step 1516 are processing for each resource rb in charge of t in phase b.
  • step 1512 the proxy task of rb 'is set to t.
  • step 1514 rb ′ is deleted from R.
  • step 1510, step 1512, step 1514, and step 1516 are repeated.
  • step 1518 the first element t is deleted from Tb, and in step 2320, it is determined whether Tb is empty. Otherwise, processing returns to step 1506.
  • the head in step 1506 is the next element after the head element t is deleted from Tb in step 1518.
  • step 2320 If it is determined in step 2320 that Tb is empty, a set of proxy resources for each task is obtained. That is, in step 1512, since the proxy task t of the resource rb ′ is determined, this is a set of such (rb ′, t).
  • the correspondence table of the phase ID and the ID of this task, and the correspondence of the phase ID and the ID of the substitute task A table is created.
  • the correspondence table between the phase ID and the substitute task ID is represented as a two-dimensional table in order to represent a bidirectional transition. These correspondence tables are shown as the transition table 214 in FIG.
  • the correspondence table between the phase ID and the ID of this task is created at step 506 in FIG. 5, and the correspondence table between the phase ID and the substitute task ID is created at step 508 in FIG.
  • the program executed on each resource can be switched by preparing a wrapper that switches the function to be called based on the task ID.
  • the above is a table for normal tasks, but a table for monitoring tasks may be prepared. This holds the threshold value used for the determination at the time of phase switching.
  • switching for each time zone it consists of a set of time and phase ID.
  • the center of gravity and phase ID are It consists of a pair.
  • FIG. 17 is a flowchart showing operations of the aspect pattern measurement module 216 and the aspect pattern comparison module 218 after the stream format code group 212 and the transition table are prepared.
  • the aspect pattern measurement module 216 collects load measurement, that is, traffic arriving at the Ethernet stack & Ethernet port 110.
  • the aspect pattern comparison module 218 calculates the distance between the measured traffic aspect (phase) and the currently selected phase, and performs phase switching determination in step 1702. That is, if the distance is within a predetermined threshold, it is determined that switching is not performed, and the process returns to step 1702. If the distance is greater than or equal to a predetermined threshold, it is determined to switch, and the process proceeds to step 1706.
  • the phase can be considered as a feature vector whose component is a traffic ratio such as mail, FTP, video, web, etc. Then, the Euclidean distance, Manhattan between the feature vectors. Values such as distance and inner product can be defined. Then, it is sufficient to check whether such an inner product or distance is within a threshold value.
  • step 1706 the mode pattern comparison module 218 transmits a resource phase switching instruction at the head of the graph to the stream format code selection module 220. Then, the process returns to step 1702.
  • FIG. 18 is a diagram showing a flowchart of operations of the stream format code selection module 220, the switching module 222, and the execution environment 224.
  • step 1802 the execution environment 224 executes this task in the currently selected stream format code.
  • step 1804 the switching module 222 determines whether or not a phase switching instruction has been received from all preceding resources. Otherwise, the process returns to step 1802 and the execution environment 224 continues to execute this task.
  • step 1804 when the switching module 222 receives the phase switching instruction from all the preceding resources, the process proceeds to step 1806, where the stream format code already selected by the monitoring task is set as the subsequent stream format code.
  • step 1806 the switching module 222 adds the phase switching instruction to the end of the data queue of all subsequent resources.
  • the switching module 222 determines whether or not the task start time in the subsequent stream format code has passed. Otherwise, in step 1810, the execution environment 224 returns to step 1808 while executing the substitute task with the phase ID of the phase switching instruction. As shown in FIG. 16, the proxy task can be determined from the immediately preceding phase ID and the current phase ID in the resource being used.
  • step 1808 determines in step 1808 that the task start time in the subsequent stream format code has passed.
  • step 1812 the switching module 222 determines in step 1812 whether the data of the proxy task remains in the queue. Otherwise, the process returns to this task execution in step 1802.
  • step 1812 determines in step 1812 that the proxy task data remains in the queue in step 1812
  • the process proceeds to step 1814, and the switching module 222 causes the execution environment 224 to execute the proxy task.
  • the output is sent to the resource that originally executes the subsequent task.
  • FIG. 19 shows a topology of computing resources connected to the Ethernet stack & Ethernet port 110 of the router appliance 100. Since this is a physical topology and not software, it cannot be dynamically reconfigured.
  • FIG. 20 shows a state in which resources are allocated in a stream format as a phase ⁇ as shown in (1) with respect to computational resources having a physical topology composed of such resources 1 to 6 (3).
  • the transition to the phase is performed by going through a transitional state using a proxy task as shown in (2).
  • the accompanying system downtime is reduced.
  • resource 1 is task a
  • resource 2 is task c
  • resource 3 is task d
  • resource 4 is task e
  • resource 5 is task f
  • resource 6 is task b.
  • resource 1 is task A
  • resource 2 is task B
  • resource 3 is task C
  • resource 4 is task E
  • resource 5 is task D.
  • resource 3 executes task D and transmits it to resource 5 as shown in step 1810 in FIG. 20 (2).
  • step 1814 resource 3 executes task D and sends it to resource 6, and moves to FIG. 20 (3).
  • resource 3 executes task C. Execute and send to resource 5.
  • resource 6 also executes task C on behalf of FIG. 20 (2) and transmits it to resource 4 and resource 3.
  • FIG. 21 is a diagram showing a transition cycle of an execution task.
  • the execution of task C of resource 6 and the execution of task D of resource 3 are execution as proxy tasks.
  • each phase since each phase is pipelined, it ends in order from the first task. Therefore, according to the basic scheme of the present invention, the resource that has finished phase ⁇ on behalf of the resource in front of phase ⁇ , and when all resources have finished the task of phase ⁇ , the original task is started. To do.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 コンピュータによる動的リソース割当てシステムにおいて、状況に従ってシステム構成を変更する際の、構成変更に伴うシステム停止時間を低減すること。 事前処理として、システムが稼動している間のトラヒックデータをある時間に亘って収集する。 そして、収集したトラヒックデータから、典型的ないくつかのパターンを抽出する。次に、それらの典型的なパターン毎に、個々にストリーム・プログラムを作成して、後で参照可能に、保存しておく。次に、異なるストリーム・プログラム間で遷移するための代行タスクのIDを保持する。実際のシステムの稼動では、システムは、トラヒックデータを定期的に、あるいは任意の時点で測定し、その結果として得られたパターンを、上記の典型的なパターンと比較し、一番近い典型的なパターンに対応するストリーム・プログラムを、次のフェーズとして選ぶ。今のフェーズのストリーム・プログラムから、次のフェーズに移行する際に、この発明によれば、タスクの切り替えコスト、リソース間のデータ転送コストなどを考慮して、今のフェーズの空きタスクを代理タスクとして次第にフェーズのストリーム・プログラムに移行することにより、プログラムの停止時間が抑制される。

Description

コンピュータ・システム、方法及びプログラム
 本発明は、コンピュータ・システムにおいて、ネットワーク・トラフィックなどの状態に応じて、動的にリソース(資源とも称する)割当てを行うための技術に関し、より詳細には、リソース割当ての構成を切り替える技術に関する。
 従来より、稼動するアプリケーション・プログラムの稼動状況や、ネットワーク・トラフィックの状態などに応じて、コンピュータの処理を最適化するために、リソースの割当てを動的に変更することが行われている。このために、以下のような技術が提案されている。
 特開2005-174201号公報及び特開2007-48315号公報は、サーバ、ネットワーク、ストレージを含むリソース表と、これらのリソース上で稼動するアプリケーションの構成要素を示すアプリケーション表と、リソースのアプリケーションへの割り当て表とを保持し、これらの構成情報から性能情報の測定項目を生成する性能測定項目テンプレート、この性能情報の測定項目を性能測定エンジンによって測定する性能測定エンジン、前記構成情報からリソースの割り当て変更に用いるリソース割り当て変更ルールを生成する手段、および前記生成したリソース割り当て変更ルールと構成情報に従って、リソースの割り当て変更を行うことを開示する。リソース割り当て変更ルールは、測定した性能指標に対する閾値を含む。
 特開2008-191737号公報は、サーバの性能や回線品質に左右されることなく、且つ新たにスペースを確保することなくシステムを安定的に動作させることができるアプリケーション実行システムを提供するために、クライアント端末と、アプリケーション実行装置とを第1のネットワークに接続すると共に、アプリケーション実行装置と、代理サーバとが第2のネットワークに接続されるアプリケーション実行システムにおいて、アプリケーション実行装置は、アプリケーションを実行する実行部と、実行部とは独立して動作し、実行部の状態に応じて、受信した実行要求を実行部または代理サーバに転送する切替部とを備えることを開示する。このとき、代理サーバは、実行要求に基づいて、代理アプリケーションを実行する。
 これらの従来技術は、サーバ上で性能を測定し、その結果に応じて、処理能力を向上させるようにシステム構成を変更する技術については開示するが、従来技術においては、システム構成を変更する際に、一旦システムが停止するという問題があった。
 昨今、多くの企業が導入しているクラウド・コンピューティングに基づくサービスにおいては、SLA(サービス品質保証契約)という概念が採用されており、システムが停止する時間が長いと、サービス・プロバイダは損害を被る。
 しかし、上記従来技術は、システム構成の切り替えの際にシステム停止時間を短縮することについては、特に解決策を示唆するものではない。
特開2005-174201号公報 特開2007-48315号公報 特開2008-191737号公報
 従って、この発明の目的は、コンピュータによる動的リソース割当てシステムにおいて、状況に従ってシステム構成を変更する際の、構成変更に伴うシステム停止時間を低減することにある。
 この発明のシステムは先ず、事前処理として、システムが稼動している間のトラヒックデータをある時間に亘って収集する。 そして、収集したトラヒックデータから、典型的ないくつかのパターンを抽出する。
 この発明のシステムは次に、それらの典型的なパターン毎に、これには限定されないが、例えば、本出願人に係る特願2009-271308号明細書に記載された技術を用いて、個々にストリーム・プログラムを作成して、後で参照可能に、保存しておく。 
 この発明のシステムは次に、異なるストリーム・プログラム間で遷移するための代行タスクのIDを保持する。
 こうしておいて、実際のシステムの稼動では、この発明のシステムは、トラヒックデータを定期的に、あるいは任意の時点で測定し、その結果として得られたパターンを、上記の典型的なパターンと比較し、一番近い典型的なパターンに対応するストリーム・プログラムを、次のフェーズとして選ぶ。
 その際、今のフェーズのストリーム・プログラムから、次のフェーズに移行する際に、この発明によれば、コンピュータの処理により、タスクの切り替えコスト、リソース間のデータ転送コストなどを考慮して、今のフェーズの空きタスクを代理タスクとして次第にフェーズのストリーム・プログラムに移行することにより、プログラムの停止時間が抑制される。 
 このとき、代理タスクの選択は、関連するタスクのパイプライン・ピッチ、関連するタスク間の切り替えコスト、及び関連するフェーズ間でリソース間のデータ送受信の時間を含むコストを予め測定して保存しておき、現在のフェーズと次のフェース、使用資源の移行、実行タスクの移行を考慮して、コストが小さくなるように行われる。
 この発明によれば、コンピュータによる動的リソース割当てシステムにおいて、状況に従って、元の構成から次の構成に移行する際に、元の構成から代行タスクを選択して途中の処理をさせることにより、処理の空き時間を減らして、プログラムの停止時間を低減させるという効果が得られる。
本発明を実施するためのハードウェア構成の概要を示す図である。 本発明を実施するための機能ブロック図である。 構成テーブルの例を示す図である。 ストリーム・プログラムの例を示す図である。 事前処理のフローチャートである。 トラヒック情報の時間推移を示す図である。 抽出されたフェーズの例を示す図である。 ストリーム・プログラムの例を示す図である。 ストリーム・プログラムの例を示す図である。 ストリーム・プログラムの例を示す図である。 UDOPに計算リソースを割り当てる処理のフローチャートを示す図である。 ストリームグラフと、利用可能なリソースの例を示す図である。 UDOPに計算リソースを割り当てた後の要求されたリソースの例を示す図である。 割当て変更処理の例を示す図である。 タスクの代行資源を決定するための処理のフローチャートを示す図である。 資源毎の本タスクと、代行タスクのテーブルを示す図である。 フェーズ切り替え判定のための処理のフローチャートを示す図である。 代行タスクによる実行処理のフローチャートを示す図である。 計算資源のトポロジの例を示す図である。 フェーズの切り替えと、代行タスクによる実行の例を示す図である。 代行手法の実行タスクの遷移サイクルの例を示す図である。
 以下、図面に基づき、この発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。尚、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことを理解されたい。
 図1は、本発明を実施するためのハードウェア構成を示すブロック図である。本発明は、これには限定されるものではないが、特にこの例は、PRISMなどのマルチコア・マルチプロセッサ・ルータ・アプライアンス100を使用する。
 図1において、バス102には、マルチコア・プロセッサ104、マルチコア・プロセッサ106、RAM108、イーサネット・スタック&イーサネット・ポート110、及びフラッシュROM112が接続されている。
 マルチコア・プロセッサ104及び106としては、これには限定されないが、ネットワーク・プロセッサ、例えば、Intel(R) IXP 425 Network Processorを使用することができる。ネットワーク・プロセッサは、イーサネット(R)MACや、暗号処理などの機能を内蔵するものである。
 マルチコア・プロセッサ104とマルチコア・プロセッサ106は、実質的に同一の構成なので、代表的にマルチコア・プロセッサ104を説明すると、マルチコア・プロセッサ104は、複数のコア104a、104b、104c及び104dを有し、コア104a、104b、104c及び104dは、L2キャッシュ104eを介して、バス102に結合されている。
 コア104a、104b、104c及び104dの各々は、複数のスレッドを走らせることができる。例えば、コア104a中に、ボックスS1及びS2が示されているが、これらがそれぞれ、個別のスレッドS1及びS2である。コア104b、104c及び104dにおいても同様であるので、個別の説明は省略する。
この実施例では、図示するように、マルチコア・プロセッサ106のコア106d上で、本発明に係る主要な機能を実行する管理スレッドSnが走っているものとする。
 RAM108は、マルチコア・プロセッサ104及びマルチコア・プロセッサ106が、処理結果の値を一時保持したり、読み出したりするために使用される。
 イーサネット・スタック&イーサネット・ポート110には、図示しないが、他のコンピュータ・システム、ネットワーク接続ストレージ(NAS)、ストレージ・エリア・ネットワーク(SAN)、及び別のルータなどが接続される。マルチコア・マルチプロセッサ・ルータ・アプライアンス100は、それらの機器との間で、データを通信する役割を担う。
 フラッシュROM112には、マルチコア・プロセッサ104及びマルチコア・プロセッサ106をルータとして動作させるためのJuniper NetworksのJunos(R)またはCisco Systsms IncのIOSなどのネットワークOS 、及び後述する本発明に係る処理モジュールが含まれる。
 次に、図2の機能ブロック図を参照して、フラッシュROM112、RAM108などに含まれる、本発明に係る処理モジュールを説明する。
 図2において、統計情報収集モジュール202は、イーサネット・スタック&イーサネット・ポート110に到来するトラヒックを時間毎に収集する機能をもつ。トラヒックを収集するための従来の典型的な方法として、SNMPプロトコルによる方法がある。あるいは、tcpdumpというパケット解析コマンドを使用することもできる。さらには、フルーク・ネットワークス社から入手可能な、"NetFlow Tracker"などの商用ツールを使用してもよい。ここで収集される情報とは、メール、FTP、動画、ウェブなどのトラヒックの割合である。
 統計情報収集モジュール202は、典型的には、少なくとも平日丸一日分、休日丸一日分のトラヒック情報を収集して、図示しないコンピュータ・システムのハードディスク・ドライブなどに保存する。
 様相パターン抽出モジュール204は、ハードディスク・ドライブなどに保存されたトラヒック情報を解析して、典型的な複数のパターンを抽出し、様相パターン群206として、典型的には、RAM108に保存する。様相パターン群206は、一定時間毎のトラヒック・パターンの収集、または、K平均法などを用いたクラスタリングによって決定することができる。
 構成テーブル208は、様相パターン群206の各トラヒック・パターン毎に対応するエントリを有するものであり、例えば、本出願人に係る特願2009-271308号明細書に記述された図6に示す表と等価なものであるので、それを図3として、再掲する。
 図3において、UDOPは、ストリーム・プログラミングにおけるユーザ定義オペレータであり、この実施例では例えば、これには限定されないが、イーサネット(商標)・プロトコル・スタック、IPプロトコル・スタック、TCPプロトコル・スタック、UDPプロトコル・スタック、SSLプロトコル・スタック、ウイルス・スキャン、XMLアクセラレータなどである。
 図3においてカーネルとは、個々のUDOPに対して用意された、1つまたは複数のモジュールであって、複数ある場合は、パケットの一次元配列のサイズがそれぞれ異っている。
 実行パターンとは、例えば、下記の規則に従って表記されたものである。
ループにする(Rolling loop):   A+A+A....A  => loop(n, A)
 ここで、A+A+A....Aは、Aの直列処理であり、loop(n, A)は、Aをn回まわすループのことをあらわす。
ループを解く(Unrolling loop): loop(n, A) => A+A+A....A
ループの直列(Series Rolling): split_join( A, A... A ) => loop(n, A)
 これは、並列に走るA, A... Aを、loop(n, A)にすることである。
ループの並列(Pararell unrolling loop):  loop(n, A) => split_joing( A, A, A ........A )
 これは、loop(n, A)を、並列に走るA, A... Aにすることである。
ループの分割(Loop splitting): loop(n, A)  => loop(x, A)  +  loop(n-x, A)
並列ループ分割(Pararell Loop splitting): loop(n, A)  => split_join( loop(x, A),  loop(n-x, A) )
ループ融合(Loop fusion):  loop(n, A) + loop(n, B)  => loop(n, A+B)
ループ融合の直列(Series Loop fusion): split_join( loop(n, A), loop(n, B) )  => loop(n, A+B)
ループ分配(Loop distribution):  loop(n, A+B) => loop(n, A) + loop(n, B) 
並列ループ分配(Pararell Loop distribution): loop(n, A+B) => split_join( loop(n, A), loop(n, B) ) 
ノード結合(Node merging):   A+B => {A,B}
ノード分割(Node splitting):  {A,B} => A+B
ループ置換(Loop replacement): loop(n,A) => X /* X is lower cost */
ノード置換(Node replacement):  A => X /* X is lower cost */
 図3でピッチとあるのは、パイプライン・ピッチ、すなわち、パイプライン処理の1ステージの処理時間のことである。また、リソースとは、使用するCPUの数である。図3のリソース欄には、この実施例の場合、図1のシステムにおけるスレッドの数が記載される。
 構成テーブル208のエントリは、イーサネット・スタック&イーサネット・ポート110に接続された、ハードウェア及びソフトウェアを含むシステム環境209に基づき、図示しない所定の処理モジュールによって作成される。このことは、UDOP毎に、UDOPを実現するカーネル定義を取得し、実行対象のハードウェア・コンフィギュレーションを取得し、使用アーキテクチャを組み合わせて使用リソースの組を用意し、これらについて、実行可能なカーネルを選択し、実行パターンを生成し、パイプライン・ピッチを測定するという処理を、使用リソースの組全てについて実行することによって達成される。このより詳しい処理は、本出願人に係る特願2009-271308号明細書の図3と対応する明細書の記述を参照されたい。
 コンパイラ210は、様相パターン群206の各様相パターン毎に、構成テーブル208のエントリを参照して、各様相パターン毎に、ストリーム形式コードを作成する。
 なお、ストリーム形式コードを記述するためのストリーム・プログラミング言語として、インターナショナル・ビジネス・マシーンズ・コーポレーションのSPADE、マサチューセッツ工科大学ののStreamltがなどが知られている。Streamltによれば、図4に示すストリーム・グラフは、次のようなコードで記述される。
add splitjoin {
  split roundrobin();
  add pipeline {
     add A();
     add B();
     add C();
     add D();
  }
  add pipeline {
     add E();
     add F();
  }
  join roundrobin();
}
 Streamltのより詳細な説明については、
http://groups.csail.mit.edu/cag/streamit/
あるいは、http://groups.csail.mit.edu/cag/streamit/papers/streamit-cookbook.pdfを参照されたい。
 また、SPADEについては、
http://domino.research.ibm.com/comm/research_projects.nsf/pages/esps.spade.html
を参照されたい。
  コンパイラ210が、各様相パターンに基づきストリーム形式コードを作成する。より詳しい処理については、後でより詳しく説明する。ストリーム形式コードは、処理を実行するタスクと、そのタスクを実行するハードウェア資源を、グラフ形式で記述する。
 こうして、ストリーム形式コードが、各様相パターン毎に生成されると、図示しない特定の処理プログラムが、各様相パターンに対応するストリーム形式コードの間の遷移テーブル214を生成する。なお、遷移テーブル214の生成は、コンパイラ210によって行うようにしてもよい。尚、以下では、ストリーム形式コードの集まりを、ストリーム形式コード群212と呼ぶ。
 以上述べたのは、事前に様相パターン群206、ストリーム形式コード群212、遷移テーブル214を用意するためのモジュールであったが、次に、実際のルータ・アプライアンス100の動作の間に動作するモジュール群を説明する。
 様相パターン計測モジュール216は、ルータ・アプライアンス100の動作の間に、好適には、統計情報収集モジュール202よりも軽量な、ストリーム形式コードの先頭のタスクが処理するデータを種類ごとに数え上げるという処理を用いて、様相パターンを計測する。計測は例えば、ルータ・アプライアンス100が扱うトラヒックの性質に適切な周期で行われる。
 様相パターン比較モジュール218は、様相パターン計測モジュール216が計測した様相パターンと、様相パターン群206の各様相パターンとを比較する機能をもつ。その比較の結果、一番近い様相パターンに対応するストリーム形式コードが、ストリーム形式コード選択モジュール220によって、ストリーム形式コード群212から選ばれる。
 切換モジュール222は、今まで実行環境224で実行されていたストリーム形式コードから、様相パターン比較モジュール218の比較結果に基づき選ばれたストリーム形式コードに切り替えて、実行環境224で実行させる機能をもつ。
 その際、本発明の特徴によれば、切換モジュール222は、現在のストリーム形式コードから、次のストリーム形式コードに切り替える際に、適切な代行タスクを立てることで、プログラム停止時間を減少させる。この処理の詳細は、後でフローチャートなどを使用して説明する。
 次に、図5のフローチャートを参照して、統計情報の収集及び事前処理の流れについて説明する。この処理は、例えば、ルータ・アプライアンス100を本発明の機能に従って動作させる前に、ユーザーの操作により開始される。
 ステップ502では、統計情報収集モジュール202が、イーサネット・スタック&イーサネット・ポート110に到来するトラヒックを時間毎に収集する。統計情報収集モジュール202は、SNMPプロトコル、tcpdumpというパケット解析コマンドまたは、ルーク・ネットワークス社から入手可能な、"NetFlow Tracker"という商用ツール、などを使用する。ここで収集される情報とは、メール、FTP、動画、ウェブなどのトラヒックの割合である。統計情報収集モジュール202は、典型的には、少なくとも平日丸一日分、休日丸一日分のトラヒック情報を収集して、図示しないコンピュータ・システムのハードディスク・ドライブなどに保存する。図6に、トラヒック情報が時間とともに変化する様子が模式的に示されている。ここでは、メール、FTP、動画及びウェブが例示的に示されているが、これは一例であって、実際はより多様な種類の内容のトラフィックがありえることを理解されたい。
 ステップ504では、様相パターン抽出モジュール204が、統計情報収集モジュール202が収集したトラヒック情報から、図7に示すような複数の典型的な様相パターン702、704・・・706を抽出する。
 様相パターン702、704・・・706は、一定時間毎に抽出したトラヒック情報のバターンであってもよいし、あるいは、一定時間毎に抽出したトラヒック情報のバターンを複数集めて、例えばK平均法によってクラスタリングして得られたクラスタから、代表的なものを取り出してもよい。様相パターン(フェーズ)702、704・・・706は、様相パターン群206として、好適にはRAM108に保存される。このようにして生成された様相パターン702、704・・・706にはそれぞれ、固有のフェーズIDが付与される。
 ステップ506では、コンパイラ210が、構成テーブル208の項目を参照して、様相パターン群206の各様相パターン(フェーズ)毎に、ストリーム形式コードを生成する。言い換えると、フェーズ毎に、ストリーム・プロセッシングに基づいたリソース・マッピングを導出する。
 図8は、ベースとなるストリーム・プログラムの例であり、図示されているように、イーサネット・プロトコル・スタックに、IPプロトコル・スタックが接続され、そこから、TCPプロトコル・スタックと、UDPプロトコル・スタックに分岐し、TCPプロトコル・スタックと、UDPプロトコル・スタックは、ウイルス・スキャンに接続されるとともに、SSLプロトコル・スタックにも接続され、SSLプロトコル・スタックはウイルス・スキャンに接続され、ウイルス・スキャンは、XMLアクラセレータに接続される。
 図8では、ストリーム・プログラムの各処理要素の負荷は考慮されていないが、図9の様相902のように、特定のトラヒック情報の様相に対応して、ストリーム・プログラムの各処理要素にかかる負荷が変化する。すなわち、図9において、各処理要素を囲むボックスの大きさが、負荷をあらわしているものとする。
 図10は、さらに別のトラヒック情報の様相1002に対して、各処理要素にかかる負荷分散が異なる様子を示す。すなわち、トラヒック情報の様相が変化したとき、ストリーム・プログラムの特定の各処理要素に負荷がかかりすぎて、そこがボトルネックになり、全体の処理速度が低下してしまう。
 そこで、ストリーム・プログラムにおいては、リソースマッピングにより、処理の最適化が図られる。そのための方法として、次のようなものがある。
- データ並列化、パイプラインの決定
 このとき、タスク並列も利用することで、メモリアクセスのローカリティの向上、通信競合の抑制、通信遅延の隠蔽などの効果が得られる。
- 処理が重いプロトコル・スタックを複数ステージに切り分けたり、軽いプロトコル・スタックを1つのステージに統合したりすることで、資源あたりの負荷とパイプラインピッチのバランスを取る。
 このための詳細な処理は、やや複雑なので、後で別途説明する。生成されたストリーム形式コード群212は、好適にはRAM108に保存される。
 ステップ508では、このようにして作成されたストリーム形式コード群212のストリーム形式コード間の遷移テーブル214が作成される。遷移テーブル214は、プロファイルのフェーズ毎に、プロセッサ毎のストリーム形式コードにおける本タスク、及び1つのストリーム形式コードから別のストリーム形式コードに切り替える際の代行タスクを含む。遷移テーブル214の内容についても、後で詳細に説明する。
 次に、図11以下を参照して、ストリーム形式コードを生成する処理について説明する。
 図11において、システム環境209、すなわちリソース制約(ハードウェア・コンフィギュレーション)、及び構成テーブル208が事前に用意されるものとする。機能ブロックA,B,C.Dからなるストリーム・グラフとリソース制約の例を、図12に示す。ここでいうシステム環境209とは、図1のイーサネット・スタック&イーサネット・ポート110に接続されているシステム構成のことである。
 コンパイラ210は、ステップ1102で、フィルタリングを行う。すなわち、与えられたハードウェア・コンフィギュレーションと構成テーブル208から実行可能なパターンのみ抽出し、最適化表(A)を作成する。
 コンパイラ210は、ステップ1104で、最適化表(A)を参照して、ストリームグラフ中の各UDOPに もっともパイプラインピッチの短い実行パターンを割り当てた実行パターン群(B)を作成する。それを、ストリームグラフの各ブロックに割り当てた様子を示す例を、図13に示す。
 次にステップ1106では、コンパイラ210は、実行パターン群(B)は与えられたリソース制約を満たしているかどうかを判断する。
 ステップ1106で、コンパイラ210が、実行パターン群(B)が与えられたリソース制約を満たしていると判断すると、この処理は完了する。
 ステップ1106で、コンパイラ210が、実行パターン群(B)が与えられたリソース制約を満たしてないと判断すると、ステップ1108に進み、実行パターン群(B)中の実行パターン群をパイプラインピッチ順にソートしたリスト(C)を作成する。
 次に、ステップ1110に進み、コンパイラ210は、リスト(C)から一番パイプラインピッチが短い実行パターンを持つUDOP (D)を選択する。
 次に、ステップ1112に進み、コンパイラ210は、UDOP(D)について、消費リソースのより少ない実行パターン(次候補)(E)が最適化表(A)に存在するかを判断する。
 もしそうなら、ステップ1114に進み、コンパイラ210は、UDOP(D)について、実行パターン(次候補)(E)のパイプラインピッチはリスト(C)内の最長値より小さいかどうかを判断する。
 もしそうなら、ステップ1116に進み、コンパイラ210は、実行パターン(次候補)(E)をUDOP(D)の新しい実行パターンとして割り当て、実行パターン群(B)を更新する。
 ステップ1116からは、ステップ1106の判断に戻る。
 ステップ1112での判断が否定的なら、ステップ1118に進み、そこで、コンパイラ210は、当該UDOPを(C)から外す。
 次に、ステップ1120に進み、そこでコンパイラ210は、リスト(C)に要素が存在するかどうかを判断する。もしそうなら、ステップ1108に戻る。
 ステップ1120で、リスト(C)に要素が存在しないと判断されたなら、ステップ1122に進み、そこでコンパイラ210は、実行パターン群(B)中の実行パターン群を、実行パターン群(B)の最長パイプラインピッチと次候補のパイプラインピッチの差の順にソートしたリスト(F)を作成する。
 次に、ステップ1124で、コンパイラ210は、リスト(F)のうちパイプラインピッチの差が一番短い実行パターン(G)について、それが要求するリソースが、現在注目しているリソースより少ないかどうかを判断する。
 もしそうなら、ステップ1126に進み、そこでコンパイラ210は、実行パターン(G)を新しい実行パターンとして割り当て、実行パターン群(B)を更新し、ステップ806に進む。そうでなければ、ステップ1128で当該UDOPを(F)から外して、ステップ1122に戻る。
 図14は、このような実行パターン群の置き換えによる最適化の例を示す図である。図14では、リソース制約を解くために、D4がD5に置き換えられている。
 こうして、リソースの割当てが行われると、その各々のストリーム形式コードは、ストリーム形式コード群212として、好適にはRAM108にストアされる。なお、各々のストリーム形式コードの各タスクには、固有のタスクIDが付与される。
 次に、図15のフローチャートを参照して、フェーズ切り替え時の代行タスクを選択する処理を説明する。この処理は、プロセッサ104またはプロセッサ106で走る所定のスレッドによって実行される。
 図15のフローチャートの説明を行う前に、以下で使用する記号または数式の定義を説明しておく。
定義
task(b,r):資源rのフェーズbでのタスク
Pre(t):タスクtの先行タスクの集合
Post(t):タスクtの後続タスクの集合
※1:フェーズbでのタスクtの開始時間
start(b,t) = max{start(b,p):p∈Pre(t)} + pitch
pitch:パイプラインピッチ(各タスクの実行時間)
※2:cost(t,r) = D + C + T
D = max{0,start(a,task(a,r)) - start(b,task(t)}
Dは、代理タスク実行開始までの空き時間を含むコストである。
C = max{delay(i,r),delay(r,j):i∈Deputize(a,b,s),s∈Pre(t),j∈Resource(b,u),u∈Post(t)}
Resource(b,t):フェーズbでタスクtを担当する資源の集合
Deputize(a,b,t):フェーズaからフェーズbへの切り替え時にタスクtを代行する資源の集合
delay(a,b):資源aがデータの送信を開始してから、資源bがデータの受信を完了するまでの時間
T = change(task(a,r),t) + change(t,task(b,r))
change(t1,t2):もしタスクt1がt2と同じなら0、そうでなければTC(タスク切り替え1回あたりのコスト、任意の定数)
 図15のフローチャートに戻って、ステップ1502では、資源の集合Rと、フェーズa,bが入力される。このとき、資源の集合Rには資源IDと各資源間の通信遅延が含まれる。また、フェーズa,bにはタスクID、各タスクを担当する資源ID、各タスクの先行&後続タスクの集合、各タスクの実行時間が含まれる。これは、図5のステップ508に対応する。
 ステップ1504では、フェーズbのタスク(より厳密に言うと、フェーズbに対応するストリーム・グラフにおけるタスク)を、タスク開始時間の昇順にソートしたリストTbが作成される。ここで、タスク開始時間とは、上記※1で定義されるものである。
 ステップ1506では、tにTbの先頭のタスクが置かれる。
 次に、ステップ1508から、ステップ1510、ステップ1512、ステップ1514、ステップ1516までは、フェーズbでtを担当する各資源rbについての処理である。
 ステップ1510では、Rに含まれ、且つrbと同じ種類である資源rの中で、cost(t,r)が最も小さいrをrb'とする。ここで、資源の種類とは、汎用プロセッサ、グラフィック・プロセッシング・ユニットであるアクセラレータなどのことである。また、cost(t,r)とは上記※2で定義されるものである。
 ステップ1512では、rb'の代行タスクがtとされる。次にステップ1514では、Rからrb'が削除される。
 こうして、ステップ1508に戻り、フェーズbでtを担当する資源rbがある限り、ステップ1510、ステップ1512、ステップ1514、ステップ1516までが繰り返される。
 ステップ1518では、Tbから先頭の要素tが削除されて、ステップ2320で、Tbが空かどうかが判断される。そうでなければ、処理は、ステップ1506に戻る。ステップ1506での先頭というのは、ステップ1518でTbから先頭の要素tが削除された後の次の要素のことである。
 ステップ2320で、Tbが空であると判断されると、各タスクの代行資源の集合が得られる。すなわち、ステップ1512で、資源rb'の代行タスクtが決定されるので、そのような(rb',t)の集合ということである。
 図15のフローチャートの処理は、互いに異なるフェーズa,bのあらゆる組み合わせについて行われる。その結果、図16に示すように、ルータ・アプライアンス100に接続されて、利用可能なすべての資源の各々について、フェーズIDと本タスクのIDの対応テーブルと、フェーズIDと代行タスクのIDの対応テーブルが作成される。フェーズIDと代行タスクのIDの対応テーブルは、双方向の移行をあらわすために、2次元テーブルとして表される。これらの対応テーブルは、図2で遷移テーブル214として示すものである。
 すなわち、フェーズIDと本タスクのIDの対応テーブルは、図5のステップ506で作成され、フェーズIDと代行タスクのIDの対応テーブルは、図5のステップ508で作成される。
 各資源上で実行するプログラムは、タスクIDを基にコールする関数をスイッチするようなラッパーを用意し切り替えることができる。
 上記は、通常タスク用のテーブルであるが、さらに、監視タスク用のテーブルを用意してもよい。これは、フェーズ切り替え時の判定に用いる閾値を保持するものであって、時間帯毎での切り替えの場合は、時間とフェーズIDの組からなり、K平均法の場合は、重心とフェーズIDの組からなる。
 図17は、ストリーム形式コード群212と、遷移テーブルが用意された後の、様相パターン計測モジュール216と、様相パターン比較モジュール218の動作を示すフローチャートである。
 図17において、ステップ1702では、様相パターン計測モジュール216が、負荷測定、すなわち、イーサネット・スタック&イーサネット・ポート110に到来するトラヒックを収集する。様相パターン比較モジュール218は、その計測されたトラヒックの様相(フェーズ)と、現在選ばれているフェーズの距離を計算してステップ1702で、フェーズ切り替え判定を行う。すなわち、その距離が、所定の閾値以内であるなら、切り替えないという判定を行って、ステップ1702に戻る。また、その距離が、所定の閾値以上であるなら、切り替えるという判定を行って、ステップ1706に進む。
 尚、図7に示すように、フェーズは、メール、FTP、動画、ウェブなどのトラヒックの割合を成分とする特徴ベクトルと考えることができ、すると、その特徴ベクトル同士の間に、ユークリッド距離、マンハッタン距離、内積などの値を定義することができる。そして、このような内積や距離が閾値内にあるかどうかを調べればよい。
 ステップ1706では、様相パターン比較モジュール218が、ストリーム形式コード選択モジュール220に対して、グラフ先頭の資源フェーズ切替指示を送信する。そうして処理は、ステップ1702に戻る。
 図18は、ストリーム形式コード選択モジュール220、切換モジュール222及び実行環境224の動作のフローチャートを示す図である。
 ステップ1802では、実行環境224が、現在選ばれているストリーム形式コードにおいて、本タスクを実行する。ステップ1804では、切換モジュール222が、全ての先行資源からフェーズ切替指示を受信したかどうかを判断する。そうでなければ、ステップ1802に戻って、実行環境224が、本タスクを実行し続ける。
 ステップ1804で、切換モジュール222が、全ての先行資源からフェーズ切替指示を受信すると、ステップ1806に進み、そこで、監視タスクによって既に選択されているストリーム形式コードが、後続ストリーム形式コードとする。
 そこで、後続ストリーム形式コードのIDがフェーズ切り替え指示に含まれているので、ステップ1806では、切換モジュール222が、全ての後続資源のデータキューの末尾に、フェーズ切替指示を追加する。
 次に、ステップ1808に進んで、切換モジュール222が、後続ストリーム形式コードにおける本タスク開始時刻を過ぎたかどうか判断する。そうでなければ、ステップ1810で、実行環境224が、フェーズ切替指示のフェーズIDでの代行タスクを実行しつつ、ステップ1808に戻る。代行タスクは、図16に示すように、使用中の資源における、直前のフェーズIDと、今のフェーズIDから決定することができる。
 ステップ1808で、切換モジュール222が、後続ストリーム形式コードにおける本タスク開始時刻を過ぎたと判断すると、ステップ1812に進む。
 ステップ1812では、切換モジュール222は、ステップ1812で、代行タスクのデータがキューに残っているかどうかを判断する。そうでなければ、処理は、ステップ1802の本タスク実行に戻る。
 ステップ1812で、切換モジュール222が、ステップ1812で、代行タスクのデータがキューに残っていると判断したなら、処理はステップ1814に進み、切換モジュール222は、実行環境224に代行タスクを実行させ、その出力を、後続のタスクを本来実行する資源に送信する。
 以下、代行タスクを用いたフェーズ切り替え動作について、模式的な例によって、より具体的に説明する。先ず、図19は、ルータ・アプライアンス100のイーサネット・スタック&イーサネット・ポート110に接続されている計算資源のトポロジである。これは、物理的トポロジであって、ソフトウェア的なものではないので、動的に再構成できない。
 図20は、このような資源1~資源6からなる物理的トポロジの計算資源に対して、(1)に示すようにフェーズαとしてストリーム形式で資源の割り振りが行われている状態から、(3)に示すようにフェーズβとしてストリーム形式で資源の割り振りが行われている状態に移行する場合に、(2)に示すような代理タスクを使用する経過的な状態を経ることによって、フェーズ切り替えに伴うシステム停止時間を低減するものである。
 すなわち、図20(1)で、資源1がタスクaを、資源2がタスクcを、資源3がタスクdを、資源4がタスクeを、資源5がタスクfを、資源6がタスクbを実行しているフェーズαの状態から、図20(3)で、資源1がタスクAを、資源2がタスクBを、資源3がタスクCを、資源4がタスクEを、資源5がタスクDを、資源6がタスクFを実行しているフェーズβの状態に移行するために、図20(2)で、ステップ1810にあるように、資源3がタスクDを実行して資源5に送信し、次にステップ1814にあるように、資源3がタスクDを実行して資源6に送信し、図20(3)に移行して、次にステップ1802にあるように、資源3がタスクCを実行して資源5に送信する。同様に、資源6も、図20(2)で、タスクCを代行で実行して、資源4と資源3に送信する。
 図21は、実行タスクの遷移サイクルを示す図である。図において特に、資源6のタスクCの実行と、資源3のタスクDの実行が、代行タスクとしての実行である。
 すなわち、各フェーズは、パイプライン化されているため、先頭のタスクから順に終わっていく。そこで、本発明の基本的なスキームによれば、先にフェーズαを終えた資源が、フェーズβの前方の資源を代行し、全ての資源がフェーズαのタスクを終えたら、本来のタスクを開始する。
 以上、特定の実施例に従い本発明を説明してきたが、示されたハードウェア、ソフトウェア、ネットワーク構成は例示に過ぎず、本発明は、これらと機能的に等価な任意の構成で実現可能であることを理解されたい。
100 ルータ・アプライアンス
102 バス
104 マルチコア・プロセッサ
106 マルチコア・プロセッサ
108 RAM
110 イーサネット・ポート
112 フラッシュROM
202 統計情報収集モジュール
204 様相パターン抽出モジュール
206 様相パターン群
208 構成テーブル
209 システム環境
210 コンパイラ
212 ストリーム形式コード群
214 遷移テーブル
216 様相パターン計測モジュール
218 様相パターン比較モジュール
220 ストリーム形式コード選択モジュール
222 切換モジュール
224 実行環境
702 様相パターン
704 様相パターン
706 様相パターン

Claims (9)

  1.  コンピュータの処理により、ネットワーク・トラヒック情報の内容に応じて、処理を適合するように動的に構成を変更するための方法であって、
     ネットワーク・トラヒック情報の異なる複数の内容に対応するフェーズに各々適合するように、タスクと該タスクが実行されるリソース割当てをストリーム形式で指定する情報を予め保存するステップと、
     ネットワーク・トラヒック情報を測定するステップと、
     測定された前記ネットワーク・トラヒック情報に相対的に近いストリーム形式のリソース割当て情報を次のフェーズとして選択するステップと、
     既に選択されている現在のフェーズのストリーム形式のリソース割当てから、前記次のフェーズのストリーム形式のリソース割当てに切り替えるステップであって、現在のフェーズのストリーム形式のリソース割当てにおいて先に処理を終えた前記リソースが、前記次のフェーズのストリーム形式のリソース割当てにおけるタスクを過渡的に代行して実行するようになされる、ステップを有する、
     コンピュータ・システムの制御方法。
  2.  利用可能な前記リソース毎に、フェーズ間移行の代理タスクを計算してテーブルとして記憶するステップを有し、前記切り替えるステップは、当該リソースに対応して記憶された前記代理タスクを、現在のフェーズと次のフェーズとから検索して代行して実行する、請求項1に記載の方法。
  3.  前記フェーズ間移行の代理タスクは、関連するタスク間の切り替えコスト、代理タスク実行開始までの空き時間を含むコスト、及び関連するフェーズ間でリソース間のデータ送受信の時間を含むコストが小さくなるように選択される、請求項2に記載の方法。
  4.  コンピュータの処理により、ネットワーク・トラヒック情報の内容に応じて、処理を適合するように動的に構成を変更するためのシステムであって、
     記憶手段と、
     ネットワーク・トラヒック情報の異なる複数の内容に対応するフェーズに各々適合するように、タスクと該タスクが実行されるリソース割当てをストリーム形式で指定する情報を前記記憶手段に保存する手段と、
     ネットワーク・トラヒック情報を測定する手段と、
     測定された前記ネットワーク・トラヒック情報に相対的に近いストリーム形式のリソース割当て情報を次のフェーズとして選択する手段と、
     既に選択されている現在のフェーズのストリーム形式のリソース割当てから、前記次のフェーズのストリーム形式のリソース割当てに切り替える手段であって、現在のフェーズのストリーム形式のリソース割当てにおいて先に処理を終えた前記リソースが、前記次のフェーズのストリーム形式のリソース割当てにおけるタスクを過渡的に代行して実行するようになされる、手段を有する、
     コンピュータ・システム。
  5.  利用可能な前記リソース毎に、フェーズ間移行の代理タスクを計算してテーブルとして記憶する手段を有し、前記切り替える手段は、当該リソースに対応して記憶された前記代理タスクを、現在のフェーズと次のフェーズとから検索して代行して実行する、請求項4に記載のシステム。
  6.  前記フェーズ間移行の代理タスクは、関連するタスク間の切り替えコスト、代理タスク実行開始までの空き時間を含むコスト、及び関連するフェーズ間でリソース間のデータ送受信の時間を含むコストが小さくなるように選択される、請求項5に記載のシステム。
  7.  コンピュータの処理により、ネットワーク・トラヒック情報の内容に応じて、処理を適合するように動的に構成を変更するためのプログラムであって、
     前記コンピュータをして、
     ネットワーク・トラヒック情報の異なる複数の内容に対応するフェーズに各々適合するように、タスクと該タスクが実行されるリソース割当てをストリーム形式で指定する情報を予め保存するステップと、
     ネットワーク・トラヒック情報を測定するステップと、
     測定された前記ネットワーク・トラヒック情報に相対的に近いストリーム形式のリソース割当て情報を次のフェーズとして選択するステップと、
     既に選択されている現在のフェーズのストリーム形式のリソース割当てから、前記次のフェーズのストリーム形式のリソース割当てに切り替えるステップであって、現在のフェーズのストリーム形式のリソース割当てにおいて先に処理を終えた前記リソースが、前記次のフェーズのストリーム形式のリソース割当てにおけるタスクを過渡的に代行して実行するようになされる、ステップを実行させる、
     コンピュータ・システムの制御プログラム。
  8.  利用可能な前記リソース毎に、フェーズ間移行の代理タスクを計算してテーブルとして記憶するステップを有し、前記切り替えるステップは、当該リソースに対応して記憶された前記代理タスクを、現在のフェーズと次のフェーズとから検索して代行して実行する、請求項7に記載のプログラム。
  9.  前記フェーズ間移行の代理タスクは、関連するタスク間の切り替えコスト、代理タスク実行開始までの空き時間を含むコスト、及び関連するフェーズ間でリソース間のデータ送受信の時間を含むコストが小さくなるように選択される、請求項8に記載のプログラム。
PCT/JP2011/059833 2010-05-14 2011-04-21 コンピュータ・システム、方法及びプログラム WO2011142227A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201180023797.1A CN102947798B (zh) 2010-05-14 2011-04-21 计算机***及其控制方法
JP2012514749A JP5520369B2 (ja) 2010-05-14 2011-04-21 コンピュータ・システム、方法及びプログラム
US13/695,558 US9794138B2 (en) 2010-05-14 2011-04-21 Computer system, method, and program
GB1221843.4A GB2495417B (en) 2010-05-14 2011-04-21 A method for dynamically changing the configuration of a system
DE112011100714.0T DE112011100714B4 (de) 2010-05-14 2011-04-21 Computersystem, Verfahren und Programm
US13/684,380 US9798696B2 (en) 2010-05-14 2012-11-23 Computer system, method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-112117 2010-05-14
JP2010112117 2010-05-14

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/695,558 A-371-Of-International US9794138B2 (en) 2010-05-14 2011-04-21 Computer system, method, and program
US13/684,380 Continuation US9798696B2 (en) 2010-05-14 2012-11-23 Computer system, method, and program

Publications (1)

Publication Number Publication Date
WO2011142227A1 true WO2011142227A1 (ja) 2011-11-17

Family

ID=44914283

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/059833 WO2011142227A1 (ja) 2010-05-14 2011-04-21 コンピュータ・システム、方法及びプログラム

Country Status (7)

Country Link
US (1) US9794138B2 (ja)
JP (1) JP5520369B2 (ja)
CN (1) CN102947798B (ja)
DE (1) DE112011100714B4 (ja)
GB (1) GB2495417B (ja)
TW (1) TW201214286A (ja)
WO (1) WO2011142227A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402452A (zh) * 2011-12-12 2012-04-04 深圳市共进电子股份有限公司 一种编译方法及装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9608933B2 (en) * 2013-01-24 2017-03-28 Hitachi, Ltd. Method and system for managing cloud computing environment
CN103346980B (zh) * 2013-07-02 2016-08-10 华为技术有限公司 一种业务调度方法、装置及网络设备
CN104679763A (zh) * 2013-11-28 2015-06-03 富士通株式会社 用于加速工作流的执行的装置和方法
US10609119B2 (en) * 2017-11-03 2020-03-31 Salesforce.Com, Inc. Simultaneous optimization of multiple TCP parameters to improve download outcomes for network-based mobile applications
US11126430B2 (en) * 2019-05-11 2021-09-21 Intel Corporation Vector processor for heterogeneous data streams
CN111198765B (zh) * 2019-12-31 2023-08-04 富联裕展科技(河南)有限公司 运算资源分配和管理方法及代理服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08292932A (ja) * 1995-02-24 1996-11-05 Matsushita Electric Ind Co Ltd マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
JP2007048315A (ja) * 2006-10-20 2007-02-22 Hitachi Ltd リソース割り当てシステム、方法及びプログラム

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867704A (en) * 1995-02-24 1999-02-02 Matsushita Electric Industrial Co., Ltd. Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system
US6771661B1 (en) * 1999-07-21 2004-08-03 Cisco Technology, Inc. Apparatus and methods for providing event-based data communications device configuration
US6779016B1 (en) * 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
US6597956B1 (en) * 1999-08-23 2003-07-22 Terraspring, Inc. Method and apparatus for controlling an extensible computing system
WO2001035278A1 (en) * 1999-11-10 2001-05-17 Fakhouri Sameh A A decision based system for managing distributed resources and modeling the global optimization problem
US7228546B1 (en) * 2000-01-28 2007-06-05 Hewlett-Packard Development Company, L.P. Dynamic management of computer workloads through service level optimization
US6711607B1 (en) * 2000-02-04 2004-03-23 Ensim Corporation Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
US7203746B1 (en) * 2000-12-11 2007-04-10 Agilent Technologies, Inc. System and method for adaptive resource management
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7664823B1 (en) * 2003-09-24 2010-02-16 Cisco Technology, Inc. Partitioned packet processing in a multiprocessor environment
JP3896111B2 (ja) 2003-12-15 2007-03-22 株式会社日立製作所 リソース割り当てシステム、方法及びプログラム
US20060029097A1 (en) * 2004-06-07 2006-02-09 Mcgee Michael S Dynamic allocation and configuration of a computer system's network resources
US20060104219A1 (en) * 2004-11-15 2006-05-18 Harris Corporation Predictive mobile ad hoc networking including associated systems and methods
US7774471B2 (en) * 2006-06-15 2010-08-10 Adaptive Computing Enterprises, Inc. Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs
US7761875B2 (en) * 2005-06-10 2010-07-20 Hewlett-Packard Development Company, L.P. Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change
US20070011374A1 (en) 2005-07-08 2007-01-11 Kumar Sasi K Method and system for universal serial bus (USB) re-direct (USB-R) over a network
CN101248419B (zh) * 2005-08-22 2010-05-19 新日铁***集成株式会社 信息处理***
US7765450B2 (en) * 2005-10-20 2010-07-27 Jon Udell Methods for distribution of test generation programs
JP4017005B2 (ja) * 2005-10-27 2007-12-05 ソナック株式会社 演算装置
US7490223B2 (en) * 2005-10-31 2009-02-10 Sun Microsystems, Inc. Dynamic resource allocation among master processors that require service from a coprocessor
JP4377369B2 (ja) * 2005-11-09 2009-12-02 株式会社日立製作所 リソース割当調停装置およびリソース割当調停方法
US7738129B2 (en) * 2006-03-13 2010-06-15 International Business Machines Corporation Method and apparatus for assigning candidate processing nodes in a stream-oriented computer system
JP4611922B2 (ja) * 2006-03-28 2011-01-12 富士通株式会社 制御プログラム、制御方法および制御装置
US20070233843A1 (en) * 2006-03-30 2007-10-04 Gabriele Frey-Ganzel Method and system for an improved work-load balancing within a cluster
US7996842B2 (en) * 2006-03-30 2011-08-09 Oracle America, Inc. Computer resource management for workloads or applications based on service level objectives
US7669071B2 (en) 2006-05-05 2010-02-23 Dell Products L.P. Power allocation management in an information handling system
JP4751265B2 (ja) * 2006-08-01 2011-08-17 株式会社日立製作所 リソース管理システム及びその方法
US7992151B2 (en) * 2006-11-30 2011-08-02 Intel Corporation Methods and apparatuses for core allocations
US7831766B2 (en) * 2006-12-22 2010-11-09 Comm Vault Systems, Inc. Systems and methods of data storage management, such as pre-allocation of storage space
US7684320B1 (en) * 2006-12-22 2010-03-23 Narus, Inc. Method for real time network traffic classification
JP4933284B2 (ja) * 2007-01-25 2012-05-16 株式会社日立製作所 ストレージ装置及び負荷分散方法
JP5243721B2 (ja) 2007-02-01 2013-07-24 セイコーエプソン株式会社 アプリケーション実行システム、切替装置、アプリケーション実行システムのアプリケーション実行方法およびプログラム
US7987261B2 (en) 2007-07-31 2011-07-26 Yahoo! Inc. Traffic predictor for network-accessible information modules
US20090106730A1 (en) * 2007-10-23 2009-04-23 Microsoft Corporation Predictive cost based scheduling in a distributed software build
KR101366075B1 (ko) * 2007-12-20 2014-02-21 삼성전자주식회사 멀티코어 플랫폼에서의 태스크 이동 방법 및 장치
US8854966B2 (en) * 2008-01-10 2014-10-07 Apple Inc. Apparatus and methods for network resource allocation
US20090192981A1 (en) * 2008-01-29 2009-07-30 Olga Papaemmanouil Query Deployment Plan For A Distributed Shared Stream Processing System
JP2009271308A (ja) 2008-05-07 2009-11-19 Seiko Epson Corp 表示装置および電子機器
US8866827B2 (en) * 2008-06-26 2014-10-21 Microsoft Corporation Bulk-synchronous graphics processing unit programming
US8472328B2 (en) * 2008-07-31 2013-06-25 Riverbed Technology, Inc. Impact scoring and reducing false positives
US9875141B2 (en) * 2008-10-01 2018-01-23 Microsoft Technology Licensing, Llc Managing pools of dynamic resources
CN102197694B (zh) 2008-10-22 2015-03-25 夏普株式会社 移动通信***,移动台设备,基站设备,移动台设备及基站设备的管理方法和处理部
EP2254286B1 (en) * 2009-05-20 2013-03-20 Accenture Global Services Limited Network real time monitoring and control method, system and computer program product
US8213453B1 (en) * 2009-08-07 2012-07-03 Juniper Networks, Inc. Quality of service (QoS) configuration for network devices with multiple queues
JP5794230B2 (ja) * 2010-05-06 2015-10-14 日本電気株式会社 リソース管理システム、リソース管理方法およびリソース管理プログラム
US9798696B2 (en) * 2010-05-14 2017-10-24 International Business Machines Corporation Computer system, method, and program
US20120030355A1 (en) * 2010-07-27 2012-02-02 Microsoft Corporation Dynamically allocating index server resources to partner entities
US9098608B2 (en) * 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US9225772B2 (en) * 2011-09-26 2015-12-29 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
US20130138798A1 (en) * 2011-11-29 2013-05-30 International Business Machines Corporation Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems
US20130185729A1 (en) * 2012-01-13 2013-07-18 Rutgers, The State University Of New Jersey Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08292932A (ja) * 1995-02-24 1996-11-05 Matsushita Electric Ind Co Ltd マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
JP2007048315A (ja) * 2006-10-20 2007-02-22 Hitachi Ltd リソース割り当てシステム、方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402452A (zh) * 2011-12-12 2012-04-04 深圳市共进电子股份有限公司 一种编译方法及装置
CN102402452B (zh) * 2011-12-12 2014-04-09 深圳市共进电子股份有限公司 一种编译方法及装置

Also Published As

Publication number Publication date
US9794138B2 (en) 2017-10-17
GB2495417B (en) 2017-11-29
CN102947798B (zh) 2016-08-17
JP5520369B2 (ja) 2014-06-11
DE112011100714T5 (de) 2013-01-17
JPWO2011142227A1 (ja) 2013-07-22
DE112011100714B4 (de) 2018-07-19
US20130103829A1 (en) 2013-04-25
GB2495417A (en) 2013-04-10
CN102947798A (zh) 2013-02-27
TW201214286A (en) 2012-04-01

Similar Documents

Publication Publication Date Title
JP5520369B2 (ja) コンピュータ・システム、方法及びプログラム
Yang et al. A framework for partitioning and execution of data stream applications in mobile cloud computing
Kanakala et al. Performance analysis of load balancing techniques in cloud computing environment
US20170109199A1 (en) Scheduling multi-phase computing jobs
Rathore et al. Variable threshold-based hierarchical load balancing technique in Grid
CN107645520B (zh) 一种负载均衡方法、装置以及***
Wang et al. Optimizing big data processing performance in the public cloud: opportunities and approaches
EP2912811B1 (en) Traffic engineering system for preventing demand deadlock and achieving uniform link utilization
US20240104031A1 (en) Forwarding incoming io to scm namespaces
CN108737455B (zh) 网络业务识别装置及方法
Shu et al. Dynamic load balancing and channel strategy for apache flume collecting real-time data stream
He et al. Firebird: Network-aware task scheduling for spark using sdns
US9798696B2 (en) Computer system, method, and program
Panda et al. pmach: Power and migration aware container scheduling
Fang et al. Latency aware online tasks scheduling policy for edge computing system
Miranda et al. Dynamic communication-aware scheduling with uncertainty of workflow applications in clouds
Al Sallami Load balancing in green cloud computation
Bastam et al. Design and performance evaluation of a new traffic engineering technique for software-defined network datacenters
Chen et al. Network-aware grouping in distributed stream processing systems
Dai et al. A resource occupancy ratio-oriented load balancing task scheduling mechanism for flink
Zhao et al. Design and Experimental Evaluation of Algorithms for Optimizing the Throughput of Dispersed Computing
Liu et al. Job-aware network scheduling for hadoop cluster
Castillo et al. Predictive and distributed routing balancing, an application-aware approach
JP5646560B2 (ja) 仮想os制御装置、システム、方法およびプログラム
KR102091152B1 (ko) 계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180023797.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11780484

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 1120111007140

Country of ref document: DE

Ref document number: 112011100714

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 2012514749

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 1221843

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20110421

WWE Wipo information: entry into national phase

Ref document number: 1221843.4

Country of ref document: GB

WWE Wipo information: entry into national phase

Ref document number: 13695558

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11780484

Country of ref document: EP

Kind code of ref document: A1