WO2011142227A1 - コンピュータ・システム、方法及びプログラム - Google Patents
コンピュータ・システム、方法及びプログラム Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 45
- 238000013468 resource allocation Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 30
- 230000007704 transition Effects 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000001052 transient effect Effects 0.000 claims 1
- 238000007781 pre-processing Methods 0.000 abstract description 3
- 238000012546 transfer Methods 0.000 abstract description 3
- 238000012986 modification Methods 0.000 abstract 1
- 230000004048 modification Effects 0.000 abstract 1
- 238000005259 measurement Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 241000700605 Viruses Species 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 241000721662 Juniperus Species 0.000 description 1
- 241000935974 Paralichthys dentatus Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing 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
Description
ループにする(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 */
add splitjoin {
split roundrobin();
add pipeline {
add A();
add B();
add C();
add D();
}
add pipeline {
add E();
add F();
}
join roundrobin();
}
http://groups.csail.mit.edu/cag/streamit/
あるいは、http://groups.csail.mit.edu/cag/streamit/papers/streamit-cookbook.pdfを参照されたい。
http://domino.research.ibm.com/comm/research_projects.nsf/pages/esps.spade.html
を参照されたい。
- データ並列化、パイプラインの決定
このとき、タスク並列も利用することで、メモリアクセスのローカリティの向上、通信競合の抑制、通信遅延の隠蔽などの効果が得られる。
- 処理が重いプロトコル・スタックを複数ステージに切り分けたり、軽いプロトコル・スタックを1つのステージに統合したりすることで、資源あたりの負荷とパイプラインピッチのバランスを取る。
task(b,r):資源rのフェーズbでのタスク
Pre(t):タスクtの先行タスクの集合
Post(t):タスクtの後続タスクの集合
start(b,t) = max{start(b,p):p∈Pre(t)} + pitch
pitch:パイプラインピッチ(各タスクの実行時間)
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回あたりのコスト、任意の定数)
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に記載の方法。
- コンピュータの処理により、ネットワーク・トラヒック情報の内容に応じて、処理を適合するように動的に構成を変更するためのシステムであって、
記憶手段と、
ネットワーク・トラヒック情報の異なる複数の内容に対応するフェーズに各々適合するように、タスクと該タスクが実行されるリソース割当てをストリーム形式で指定する情報を前記記憶手段に保存する手段と、
ネットワーク・トラヒック情報を測定する手段と、
測定された前記ネットワーク・トラヒック情報に相対的に近いストリーム形式のリソース割当て情報を次のフェーズとして選択する手段と、
既に選択されている現在のフェーズのストリーム形式のリソース割当てから、前記次のフェーズのストリーム形式のリソース割当てに切り替える手段であって、現在のフェーズのストリーム形式のリソース割当てにおいて先に処理を終えた前記リソースが、前記次のフェーズのストリーム形式のリソース割当てにおけるタスクを過渡的に代行して実行するようになされる、手段を有する、
コンピュータ・システム。 - 利用可能な前記リソース毎に、フェーズ間移行の代理タスクを計算してテーブルとして記憶する手段を有し、前記切り替える手段は、当該リソースに対応して記憶された前記代理タスクを、現在のフェーズと次のフェーズとから検索して代行して実行する、請求項4に記載のシステム。
- 前記フェーズ間移行の代理タスクは、関連するタスク間の切り替えコスト、代理タスク実行開始までの空き時間を含むコスト、及び関連するフェーズ間でリソース間のデータ送受信の時間を含むコストが小さくなるように選択される、請求項5に記載のシステム。
- コンピュータの処理により、ネットワーク・トラヒック情報の内容に応じて、処理を適合するように動的に構成を変更するためのプログラムであって、
前記コンピュータをして、
ネットワーク・トラヒック情報の異なる複数の内容に対応するフェーズに各々適合するように、タスクと該タスクが実行されるリソース割当てをストリーム形式で指定する情報を予め保存するステップと、
ネットワーク・トラヒック情報を測定するステップと、
測定された前記ネットワーク・トラヒック情報に相対的に近いストリーム形式のリソース割当て情報を次のフェーズとして選択するステップと、
既に選択されている現在のフェーズのストリーム形式のリソース割当てから、前記次のフェーズのストリーム形式のリソース割当てに切り替えるステップであって、現在のフェーズのストリーム形式のリソース割当てにおいて先に処理を終えた前記リソースが、前記次のフェーズのストリーム形式のリソース割当てにおけるタスクを過渡的に代行して実行するようになされる、ステップを実行させる、
コンピュータ・システムの制御プログラム。 - 利用可能な前記リソース毎に、フェーズ間移行の代理タスクを計算してテーブルとして記憶するステップを有し、前記切り替えるステップは、当該リソースに対応して記憶された前記代理タスクを、現在のフェーズと次のフェーズとから検索して代行して実行する、請求項7に記載のプログラム。
- 前記フェーズ間移行の代理タスクは、関連するタスク間の切り替えコスト、代理タスク実行開始までの空き時間を含むコスト、及び関連するフェーズ間でリソース間のデータ送受信の時間を含むコストが小さくなるように選択される、請求項8に記載のプログラム。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402452A (zh) * | 2011-12-12 | 2012-04-04 | 深圳市共进电子股份有限公司 | 一种编译方法及装置 |
Families Citing this family (6)
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)
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)
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 |
-
2011
- 2011-04-21 WO PCT/JP2011/059833 patent/WO2011142227A1/ja active Application Filing
- 2011-04-21 GB GB1221843.4A patent/GB2495417B/en active Active
- 2011-04-21 JP JP2012514749A patent/JP5520369B2/ja active Active
- 2011-04-21 US US13/695,558 patent/US9794138B2/en active Active
- 2011-04-21 DE DE112011100714.0T patent/DE112011100714B4/de active Active
- 2011-04-21 CN CN201180023797.1A patent/CN102947798B/zh active Active
- 2011-05-12 TW TW100116743A patent/TW201214286A/zh unknown
Patent Citations (3)
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)
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 |