WO2025182000A1 - 生成装置、生成方法、及び、生成プログラム - Google Patents

生成装置、生成方法、及び、生成プログラム

Info

Publication number
WO2025182000A1
WO2025182000A1 PCT/JP2024/007507 JP2024007507W WO2025182000A1 WO 2025182000 A1 WO2025182000 A1 WO 2025182000A1 JP 2024007507 W JP2024007507 W JP 2024007507W WO 2025182000 A1 WO2025182000 A1 WO 2025182000A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
processor
processing
generation
allocation plan
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/JP2024/007507
Other languages
English (en)
French (fr)
Inventor
淳也 加藤
朗 金丸
伸太郎 水野
正久 川島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to PCT/JP2024/007507 priority Critical patent/WO2025182000A1/ja
Publication of WO2025182000A1 publication Critical patent/WO2025182000A1/ja
Anticipated expiration legal-status Critical
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • This disclosure relates to a generation device, a generation method, and a generation program.
  • Communications infrastructure with its strengths of ultra-low latency and massive connectivity, is expected to promote smart industrial processes such as remote factory control and distributed energy resource control. To achieve this, computing infrastructure must also be able to transfer and process data in deterministic time with ultra-low latency and support massive connectivity.
  • the time it takes to collect data from a real-world data source and complete processing such as AI (Artificial Intelligence) analysis must be kept deterministically below a specified value. Even when collecting data from multiple data sources at the same time and performing multi-dimensional analysis, the time it takes must be kept deterministically below a specified value.
  • AI Artificial Intelligence
  • TSN Time Sensitive Network
  • DMA Direct Memory Access
  • task execution times must also be deterministic.
  • scheduling is performed with an emphasis on fairness in processor usage time between tasks, so the wait time until a processor is assigned to a task is constantly fluctuating.
  • interrupts are processed with the highest priority regardless of the task priority, processing times are also constantly fluctuating.
  • Non-Patent Documents 1 and 2 One way to suppress such fluctuations in waiting time and processing time is to exclusively allocate a processor to process a specific purpose.
  • This disclosure has been made in light of the above circumstances, and its purpose is to provide technology that can achieve both determinism in task processing time and improved processor utilization.
  • a generation device includes a generation unit that generates a task allocation plan for allocating tasks to multiple parallel multi-stage processors based on the predetermined arrival time of each piece of data in multiple data streams, such that processing of each piece of data in the multiple data streams is aggregated in units of data streams to one or more columns of multiple multi-stage processors, or aggregated in units of data to one or more columns of multiple multi-stage processors.
  • a generation device generates a task allocation plan that allocates tasks to multiple parallel multi-stage processors based on the arrival time of each piece of data in multiple data streams that has been determined in advance, so that the processing of each piece of data in the multiple data streams is aggregated in units of data streams to one or more columns of multiple multi-stage processors, or is aggregated in units of data to one or more columns of multiple multi-stage processors.
  • a generation program causes a computer to function as the generation device.
  • This disclosure provides technology that can achieve both deterministic task processing times and improved processor utilization.
  • FIG. 1 is a diagram showing an example of the overall configuration of a system according to this embodiment.
  • FIG. 2 is a diagram illustrating an example of the configuration of a video analysis system.
  • FIG. 3 is a diagram showing an example (first example) of a method for generating a task allocation plan.
  • FIG. 4 is a diagram showing an example (first example) of a task allocation plan.
  • FIG. 5 is a diagram showing an example (first example) of a task allocation plan.
  • FIG. 6 is a diagram showing an example (first example) of a task allocation plan.
  • FIG. 7 is a diagram showing an example (first example) of a task allocation plan.
  • FIG. 8 is a diagram showing an example (second example) of a method for generating a task allocation plan.
  • FIG. 1 is a diagram showing an example of the overall configuration of a system according to this embodiment.
  • FIG. 2 is a diagram illustrating an example of the configuration of a video analysis system.
  • FIG. 3 is a diagram showing
  • FIG. 9 is a diagram showing an example (second example) of a task allocation plan.
  • FIG. 10 is a diagram showing an example (third example) of a method for generating a task allocation plan.
  • FIG. 11 is a diagram showing an example (third example) of a task allocation plan.
  • FIG. 12 is a diagram showing an example (another example) of a method for generating a task allocation plan.
  • FIG. 13 is a diagram showing an example (another example) of a method for generating a task allocation plan.
  • FIG. 14 is a diagram showing a processing flow for generating a task allocation plan.
  • FIG. 15 is a diagram showing a processing flow of a data stream.
  • FIG. 16 is a diagram illustrating a hardware configuration of the generation device.
  • This disclosure aggregates multiple data streams (groups of data that flow intermittently in a time series) and generates a task allocation plan to processors that can process the data streams while observing time constraints through time division. This makes it possible to achieve both deterministic task processing times and improved processor utilization.
  • the data arrival times including data arrival time patterns
  • Communication networks in which data arrival times are known in advance are existing technologies.
  • this disclosure focuses on the fact that data arrival times are deterministic, and generates logical task execution plans in advance based on processor time slot design information and placement information to increase processor utilization. This achieves a balance between the two conflicting goals of improved processor utilization and task execution time constraints.
  • FIG. 1 is a diagram showing an example of the overall configuration of a system 1 according to this embodiment.
  • the system 1 includes multiple cameras 10, multiple processing devices 20, a user terminal 30, and a generating device 40. These are connected so as to be able to communicate with each other via a communication network 50.
  • Figure 2 shows an example configuration of a video analysis system. Multiple data streams output from multiple cameras 10 are distributed to a user terminal 30 via one or more processing devices 20 in series and/or in parallel.
  • the processing device 20 comprises a NIC 21 that receives multiple data streams from multiple cameras 10, a memory 22 that stores the multiple data streams, and one or more processors 23 that process the multiple data streams.
  • the multiple processors 23 are connected in multiple stages. Video data is processed sequentially by a first processor 23a, a second processor 23b, and a third processor 23c.
  • the first processing device 20a is, for example, a video termination device.
  • the first processor 23a performs color correction and contour enhancement on frames of the data stream.
  • the second processor 23b changes the resolution of frames of the data stream to a resolution that can be processed by a video analysis device.
  • the second processing device 20b is, for example, a video analysis device, and analysis processing is performed by the third processor 23c.
  • the processing device 20 may be a processing device that executes any processing.
  • the processor 23 may also be a processor that executes any processing.
  • the number of processing devices 20 and the number of processors 23 are also arbitrary.
  • the processor may be, for example, a CPU, GPU, FPGA, etc.
  • the memory 22 may be a shared memory. A sensor may be used instead of the camera 10.
  • the video analysis system of this embodiment includes a generating device 40.
  • the generating device 40 includes a generating unit 41, a transmitting unit 42, and a storage unit 43.
  • the generation unit 41 has a function for generating a task allocation plan for assigning tasks to multiple parallel multi-stage processors based on the arrival time of each piece of data in multiple data streams, determined in advance, so that the processing of each piece of data in the multiple data streams is aggregated in units of data streams to one or more columns of multiple multi-stage processors, or is aggregated in units of data to one or more columns of multiple multi-stage processors.
  • the generation unit 41 has the function of generating the task allocation plan so that the utilization rates of the multiple processors are the same.
  • the generation unit 41 has the function of generating a software program for referencing the above task allocation plan.
  • the transmission unit 42 has the function of transmitting the software program to one or more processing devices 20.
  • the memory unit 43 has the function of storing the above software programs.
  • the storage unit 43 has the function of storing the data necessary to generate a task allocation plan.
  • the necessary data includes, for example, processor time slot design information (maximum processor execution time, maximum communication time between processors, etc.), and placement information (processing task content (data characteristics, etc.), input data volume, processor placement). This data can be obtained, for example, from actual machines in a test environment.
  • the data streams are sequentially processed by a first processor 23a, a second processor 23b, and a third processor 23c connected in multiple stages.
  • a case will be described in which 10 data streams are sequentially processed by a plurality of first processors 23a, a plurality of second processors 23b, and a plurality of third processors 23c arranged in multiple stages (horizontal direction of the paper) and in parallel (vertical direction of the paper).
  • the data refers to one frame of data that constitutes the data stream output by the camera.
  • the frames of the 10 data streams A to J are 30 fps.
  • a task allocation plan is generated in advance based on the arrival times of each piece of data in multiple data streams, which are known in advance, so that the processing of each piece of data in those multiple data streams is aggregated on a data stream basis.
  • Figures 4 to 7 show examples of task allocation plans corresponding to the configuration in Figure 3.
  • Figure 4 shows a task allocation plan for data streams A to C. Three data streams A to C are aggregated into the first data pipeline.
  • the task allocation plan is as follows: frame A1 is read from shared memory at time 0, frame A1 is processed by the first processor 23a of the first data pipeline for 5 ms, frame A1 is then processed by the second processor 23b of the first data pipeline for 10 ms, and frame A1 is then processed by the third processor 23c of the first data pipeline for 5 ms, and frame A1 is stored in shared memory after all processing is completed.
  • the task allocation plan is to read frame B1 from the shared memory at time 0, and after frame A1 is processed by the first processor 23a, process frame B1 on the first processor 23a.
  • the task allocation plan is to read frame C1 from shared memory at time 0, and after frame B1 is processed by the first processor 23a, process frame C1 on the first processor 23a.
  • a task allocation plan is generated based on the arrival time of each piece of data in multiple data streams, which is known in advance, so the process of dynamically searching for available free processor resources can be omitted. Furthermore, because the task allocation plan is generated so that the processing of each piece of data in the multiple data streams is aggregated on a data stream basis, it is possible to achieve both deterministic task processing times and improved processor utilization.
  • a task allocation plan is generated to reduce the number of idle processors.
  • each data stream from multiple data streams is allocated in units of frames, which are smaller processing units.
  • frame A1 of data stream A is allocated to the first data pipeline
  • frame A2 is allocated to the second data pipeline
  • frame A3 is allocated to the third data pipeline
  • frame A4 is allocated to the first data pipeline.
  • Figure 9 is a diagram showing an example of a task allocation plan corresponding to the configuration of Figure 8.
  • the processes of frames A1 to J1 are repeatedly assigned to the first to third data pipelines in sequence.
  • the first processor 23a of the first data pipeline is also assigned to process frame J1 at time 20.
  • the second processor 23b of the first data pipeline is also assigned to process frame J1 at times 40 to 45.
  • the third processor 23c of the first data pipeline is also assigned to process frame J1 at time 50.
  • data stream processing is allocated on a frame-by-frame basis, making it possible to more effectively utilize processor free time, further improving the determinism of task processing times and processor utilization.
  • the three processors corresponding to the fourth data stream can be eliminated.
  • the utilization rate of the second processors 23b was improved to 99% in the second example, the number of second processors 23b remains at three. In this case, it is preferable to make the utilization rate of each of the three second processors 23b the same.
  • the output of one of the two first processors 23a is divided into 100 fps and 50 fps, and each is assigned to the second processors 23b in the first and second rows.
  • the output of the other first processor 23a is divided into 50 fps and 100 fps, and each is assigned to the second processors 23b in the second and third rows.
  • Figure 11 is a diagram showing an example of a task allocation plan corresponding to the configuration of Figure 10. Compared to Figure 9, it can be seen that processor free time can be used even more effectively.
  • the number of processors is reduced while data stream processing is allocated on a frame-by-frame basis, thereby further improving the determinism of task processing times and processor utilization.
  • the task allocation plan is generated by the generating device 4.
  • the generating device 4 may generate the task allocation plan as is based on the task allocation plan input by the user.
  • the generating device 4 may also autonomously generate the task allocation plan using data required to generate the task allocation plan. In this case, it is preferable to equalize the utilization rates of multiple processors in each stage and/or each column as much as possible.
  • the generating device 4 may utilize machine learning or the like when generating the task allocation plan.
  • FIG. 14 is a diagram showing a processing flow for generating a task allocation plan.
  • Step S11 The generation unit 41 generates a task allocation plan for allocating tasks to multiple parallel multi-stage processors based on the arrival time of each piece of data in multiple data streams that has been determined in advance, so that the processing of each piece of data in the multiple data streams is aggregated in one or more columns of multiple columns of multi-stage processors on a data stream basis, or is aggregated in one or more columns of multiple columns of multi-stage processors on a data unit basis.
  • Step S12 The generating unit 41 generates a software program related to the generated task allocation plan, and the transmitting unit 42 transmits the software program to one or more processing devices 20.
  • FIG. 15 is a diagram showing a processing flow of a data stream.
  • Step S21 Each processor 23 of the processing device 20 executes the software program and processes each piece of data of the multiple data streams as it arrives, in sequence, based on the task allocation plan used by that execution.
  • Application example 1 For example, the present invention can be applied to assisting safe driving of a vehicle.
  • This use case prevents accidents by conducting a multi-dimensional assessment and prediction of the risk of collisions between vehicles and between vehicles and pedestrians at intersections through integrated analysis of multiple cameras, and providing real-time feedback to vehicles and pedestrians (via traffic lights, signs, speakers, etc.).
  • the generation unit 41 of the generation device 40 generates a task allocation plan for allocating tasks to multiple parallel multi-stage processors based on the arrival time of each piece of data in multiple data streams that is determined in advance, so that the processing of each piece of data in the multiple data streams is aggregated on a data stream basis to one or more columns of multiple columns of multi-stage processors, or is aggregated on a data unit basis to one or more columns of the multiple columns of multi-stage processors, thereby achieving both the determinism of task processing time and improved processor utilization.
  • the generation unit 41 of the generation device 40 generates the task allocation plan so that the utilization rates of multiple processors are the same, thereby further improving the determinism of task processing times and processor utilization rates.
  • the generation device 40 of this embodiment described above can be realized, for example, as shown in FIG. 16, using a general-purpose computer system equipped with a CPU 901, memory 902, storage 903, communication device 904, input device 905, and output device 906.
  • the memory 902 and storage 903 are storage devices.
  • the CPU 901 executes a predetermined program loaded onto the memory 902, thereby realizing each function of the generation device 40.
  • the generating device 40 may be implemented as a single computer.
  • the generating device 40 may be implemented as multiple computers.
  • the generating device 40 may be a virtual machine implemented on a computer.
  • the program for the generation device 40 can be stored on a computer-readable recording medium such as a HDD, SSD, USB memory, CD, or DVD.
  • the computer-readable recording medium is, for example, a non-transitory recording medium.
  • the program for the generation device 40 can also be distributed via a communications network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)

Abstract

生成装置40は、事前に確定している複数のデータストリームの各データの到着時刻に基づき、前記複数のデータストリームの各データの処理を、データストリーム単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の列に集約するように、又は、データ単位で前記複数列の多段な複数のプロセッサのうちいずれか1つ以上の段に集約するように、並列な多段な複数のプロセッサに割り当てるタスク割当計画を生成する生成部41、を備える。

Description

生成装置、生成方法、及び、生成プログラム
 本開示は、生成装置、生成方法、及び、生成プログラムに関する。
 超低遅延や超多数接続を強みとする通信インフラにより、工場の遠隔制御や分散型エネルギーリソース制御等の産業のスマート化を促進できると期待されている。そのためには、コンピューティングインフラも、超低遅延で超多数接続に対応したデータ転送及びデータ処理を確定的な時間で実現する必要がある。
 例えば、実空間のデータ源からデータを収集してAI(Artificial Intelligence)分析等の処理を完了するまでの時間を、確定的に所定値以下に保てる必要がある。複数のデータ源から同時刻のデータを収集して多元分析を行う際にも、かかる時間を確定的に所定値以下に保てる必要がある。
 確定的な時間でデータを転送する技術として、装置間の時刻同期や時分割送信等によりイーサネット上で定時性を有したデータ転送を行うTSN(Time Sensitive Network)、CPUやOSを介さずにメモリ間でデータを直接転送するDMA(Direct Memory Access)がある。これらの技術によりデータの転送時間を確定的にすることができる。
 処理全体の時間を確定的にするためには、タスク実行時間も確定的にする必要がある。現在クラウド等で多く使われている汎用OSの場合、タスク間のプロセッサ利用時間の公平性を重視したスケジューリングが行われるため、タスクにプロセッサが割り当てられるまでの待ち時間は常に変動する。また、割り込みはタスクの優先度とは無関係に最優先で処理されるため、処理時間も常に変動する。
 かかる待ち時間の揺らぎと処理時間の揺らぎを抑制する方法として、プロセッサを所定の目的の処理のために占有的に割り当てる方法がある(非特許文献1、2)。
"Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment"、Journal of the Association for Computing Machinery、Vol.20、No.1、1973年1月、p.46-p.61、[online]、[令和6年2月19日検索]、<URL: https://www.cs.ru.nl/~hooman/DES/liu-layland.pdf> "Deadline Task Scheduling"、[online]、[令和6年2月19日検索]、<URL: https://www.kernel.org/doc/html/latest/scheduler/sched-deadline.html>
 しかしながら、特定のタスクにプロセッサを占有させると、プロセッサがタスクを処理しない空き時間が生じても他の処理を実行できないため、プロセッサの利用率が空きの時間の分だけ低下する。
 また、汎用OSは一般にプロセッサを他のタスクと共有するため、他タスクの影響の予測が難しく、確定的な時間内で処理が完了させることは困難である。
 本開示は、上記事情に鑑みてなされたものであり、本開示の目的は、タスクの処理時間の確定性とプロセッサの利用率向上を両立可能な技術を提供することである。
 本開示の一態様の生成装置は、事前に確定している複数のデータストリームの各データの到着時刻に基づき、前記複数のデータストリームの各データの処理を、データストリーム単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の列に集約するように、又は、データ単位で前記複数列の多段な複数のプロセッサのうちいずれか1つ以上の段に集約するように、並列な多段な複数のプロセッサに割り当てるタスク割当計画を生成する生成部、を備える。
 本開示の一態様の生成方法は、生成装置で行う生成方法において、事前に確定している複数のデータストリームの各データの到着時刻に基づき、前記複数のデータストリームの各データの処理を、データストリーム単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の列に集約するように、又は、データ単位で前記複数列の多段な複数のプロセッサのうちいずれか1つ以上の段に集約するように、並列な多段な複数のプロセッサに割り当てるタスク割当計画を生成する。
 本開示の一態様の生成プログラムは、上記生成装置としてコンピュータを機能させる。
 本開示によれば、タスクの処理時間の確定性とプロセッサの利用率向上を両立可能な技術を提供できる。
図1は、本実施形態に係るシステムの全体構成例を示す図である。 図2は、映像解析システムの構成例を示す図である。 図3は、タスク割当計画の生成方法の例(第1の例)を示す図である。 図4は、タスク割当計画の例(第1の例)を示す図である。 図5は、タスク割当計画の例(第1の例)を示す図である。 図6は、タスク割当計画の例(第1の例)を示す図である。 図7は、タスク割当計画の例(第1の例)を示す図である。 図8は、タスク割当計画の生成方法の例(第2の例)を示す図である。 図9は、タスク割当計画の例(第2の例)を示す図である。 図10は、タスク割当計画の生成方法の例(第3の例)を示す図である。 図11は、タスク割当計画の例(第3の例)を示す図である。 図12は、タスク割当計画の生成方法の例(その他の例)を示す図である。 図13は、タスク割当計画の生成方法の例(その他の例)を示す図である。 図14は、タスク割当計画の生成処理フローを示す図である。 図15は、データストリームの処理フローを示す図である。 図16は、生成装置のハードウェア構成を示す図である。
 以下、図面を参照して、本開示の実施形態を説明する。図面の記載において同一部分には同一符号を付し説明を省略する。
 [本開示の概要]
 本開示は、複数のデータストリーム(時系列に沿って断続的に流れるデータ群)を集約しつつ、データストリームを時分割で時間制約を守りながら、処理可能なプロセッサへのタスク割当計画を生成する。これにより、タスクの処理時間の確定性とプロセッサの利用率向上を両立できる。但し、データの到着時刻(データの到着時刻パタンを含む)は事前に判明していることを前提とする。データの到着時刻が事前に判明している通信ネットワーク(データの到着に関して確定性を持った通信手段)は、既存技術である。
 つまり、本開示は、データの到着時間が確定的であることに着目し、プロセッサのタイムスロット設計情報や配置情報を基に、プロセッサの利用率が高くなるように、論理的なタスクの実行計画を事前に生成する。これにより、プロセッサの利用率向上とタスクの実行時間制約の相反する2つ要素を両立する。
 [システムの構成例]
 本実施形態では、複数のカメラ映像を集約して映像解析を行う例を説明する。
 図1は、本実施形態に係るシステム1の全体構成例を示す図である。システム1は、複数のカメラ10と、複数の処理装置20と、ユーザ端末30と、生成装置40と、を備える。それらは、通信ネットワーク50を介して通信可能に接続されている。
 図2は、映像解析システムの構成例を示す図である。複数のカメラ10から出力される複数のデータストリームは、1つ又は複数の処理装置20を直列及び/又は並列に介してユーザ端末30へ配信される。
 処理装置20は、複数のカメラ10からの複数のデータストリームを受信するNIC21と、複数のデータストリームを記憶するメモリ22と、複数のデータストリームを処理する1つ又は複数のプロセッサ23と、を備える。複数のプロセッサ23は、多段に接続された構成となる。映像データは、第1のプロセッサ23aと、第2のプロセッサ23bと、第3のプロセッサ23cと、により、順次処理される。
 図2(b)の場合、第1の処理装置20aは、例えば、映像終端装置である。第1のプロセッサ23aは、データストリームのフレームの色調補正や輪郭強調を行う。第2のプロセッサ23bは、映像解析装置が処理可能な解像度へデータストリームのフレームの解像度を変更する。第2の処理装置20bは、例えば、映像解析装置であり、第3のプロセッサ23cにより解析処理が行われる。
 但し、処理装置20は、任意の処理を実行する処理装置でよい。プロセッサ23も任意の処理を実行するプロセッサでよい。処理装置20の数及びプロセッサ23の数も任意である。プロセッサは、例えば、CPU、GPU、FPGA等である。メモリ22は、共有メモリでもよい。カメラ10に代えて、センサでもよい。
 [生成装置の構成]
 上記映像解析システムに対し、本実施形態は、図1に示したように、生成装置40を備える。生成装置40は、生成部41と、送信部42と、記憶部43と、を備える。
 生成部41は、事前に確定している複数のデータストリームの各データの到着時刻に基づき、その複数のデータストリームの各データの処理を、データストリーム単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の列に集約するように、又は、データ単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の段に集約するように、並列な多段な複数のプロセッサに割り当てるタスク割当計画を生成する機能を備える。
 生成部41は、上記複数のプロセッサの各利用率が同じになるように、上記タスク割当計画を生成する機能を備える。
 生成部41は、上記タスク割当計画を参照させるためのソフトウェアプログラムを生成する機能を備える。
 送信部42は、上記ソフトウェアプログラムを1つ以上の処理装置20へ送信する機能を備える。
 記憶部43は、上記ソフトウェアプログラムを記憶する機能を備える。
 記憶部43は、タスク割当計画を生成するために必要なデータを記憶する機能を備える。必要なデータとは、例えば、プロセッサのタイムスロット設計情報(プロセッサの最大実行時間、プロセッサ間の通信最大時間、等)、配置情報(処理タスクの内容(データ特性、等)、入力データ量、プロセッサの配置)である。これらのデータは、例えば、試験環境の実機から取得可能である。
 [タスク割当計画の生成方法]
 図2に示したように、データストリームは、多段に接続された第1のプロセッサ23aと第2のプロセッサ23bと第3のプロセッサ23cにより、順次処理される。以降の例では、10本のデータストリームを、多段(紙面の横方向)かつ並列(紙面の縦方向)に配置された、複数の第1のプロセッサ23aと複数の第2のプロセッサ23bと複数の第3のプロセッサ23cで、順次処理する場合を説明する。
 (第1の例)
 本例においてデータとは、カメラが出力するデータストリームを構成する1枚のフレームデータとする。
 図3に示すように、第1のプロセッサ23aと第3のプロセッサ23cの各タイムスロット長を5msとする。故に、第1のプロセッサ23aと第3のプロセッサ23cの各処理能力は、1s/5ms=200fpsとなる。第2のプロセッサ23bのタイムスロット長を10msとする。故に、第2のプロセッサ23bの処理能力は、1s/10ms=100fpsとなる。10本のデータストリームA~Jのフレームは、30fpsとする。
 多段に接続された第1のプロセッサ23aと第2のプロセッサ23bと第3のプロセッサ23cの接続をデータパイプラインと呼ぶ。1本のデータパイプラインの処理能力は、処理能力の最も低い第2のプロセッサ23bに支配されるので、100fpsとなる。故に、1本のデータパイプラインあたり、100fps/30fps≒3本のデータストリームを処理可能である。
 そこで、第1の例では、図3に示したように、3本のデータストリームA~Cを第1のデータパイプラインに集約し、3本のデータストリームD~Fを第2のデータパイプラインに集約し、3本のデータストリームG~Iを第3のデータパイプラインに集約する。データストリームJは、第4のデータパイプラインで処理する。つまり、第1の例では、データストリーム単位で処理を集約する。
 このとき、第1~第3の各データパイプラインには、それぞれ、3本のデータストリームが入力される。プロセッサの視点から見ると、3本のデータストリームの各処理を時分割で切り替えながら処理を行うので、“データストリームのデータの到着後に利用可能な空きプロセッサ資源を探索する”、というオーバヘッド処理が生じる。
 そこで、第1の例では、正確なデータの到着を保証可能な光通信ネットワークを経由してデータが到着することを前提として、オーバヘッド処理を省略することを考える。つまり、第1の例では、データストリームのデータの到着時刻が事前に判明していることを前提とし、事前に判明しているデータの到着時刻(データの到着時刻パタンを含む)を基に、どのプロセッサが、どの時刻に、どのストリームのフレームを処理するかを定めた、静的なタスク割当計画を事前に生成する。なお、光通信ネットワークは、データの到着に関して確定性を持った通信手段の例である。
 まとめると、第1の例では、事前に判明している複数のデータストリームの各データの到着時刻を基に、その複数のデータストリームの各データの処理をデータストリーム単位で集約するように、タスク割当計画を事前に生成する。
 図4~図7は、図3の構成に対応するタスク割当計画の例を示す図である。図4は、データストリームA~Cのタスク割当計画を示す図である。3本のデータストリームA~Cを第1のデータパイプラインに集約している。
 データストリームAについては、時刻0でフレームA1を共有メモリから読み出し、フレームA1を第1のデータパイプラインの第1のプロセッサ23aで5ms処理し、その後にフレームA1を第1のデータパイプラインの第2のプロセッサ23bで10ms処理し、その後にフレームA1を第1のデータパイプラインの第3のプロセッサ23cで5ms処理し、全ての処理終了後にフレームA1を共有メモリに格納する、というタスク割当計画である。
 データストリームBについては、時刻0でフレームB1を共有メモリから読み出し、フレームA1が第1のプロセッサ23aで処理された後、フレームB1を当該第1のプロセッサ23aで処理する、というタスク割当計画である。
 データストリームCについては、時刻0でフレームC1を共有メモリから読み出し、フレームB1が第1のプロセッサ23aで処理された後、フレームC1を当該第1のプロセッサ23aで処理する、というタスク割当計画である。
 なお、図面内の「●」は、プロセッサの空き状態を示している。
 このように、第1の例では、事前に判明している複数のデータストリームの各データの到着時刻を基に、タスク割当計画を生成するので、利用可能な空きプロセッサ資源を動的に探索する処理を省略できる。また、その複数のデータストリームの各データの処理を、データストリーム単位で集約するように、タスク割当計画を生成するので、タスクの処理時間の確定性とプロセッサの利用率向上を両立できる。
 (第2の例)
 第1の例の場合、第1~第3の各データパイプラインの利用率は、それぞれ3本のデータストリームが入力されているので、30fps×3本/100fps=90%である。一方、第4のデータパイプラインの利用率は、30fps×1本/100fps=30%である。100fps処理可能なうち30fps分しか使われてない。
 そこで、第2の例及び後述する第3の例では、空きのプロセッサを減らすように、タスク割当計画を生成する。
 第2の例では、図8に示すように、複数のデータストリームの各データの処理を、処理単位の小さいフレーム単位で振り分ける。例えば、データストリームAのフレームA1を第1のデータパイプラインに振り分け、フレームA2を第2のデータパイプラインに振り分け、フレームA3を第3のデータパイプラインに振り分け、フレームA4を第1のデータパイプラインに振り分ける。つまり、フレーム単位で振り分けることにより、1本のデータパイプラインで10本/3=3.33本のデータストリームを処理させるように計画する。
 図9は、図8の構成に対応するタスク割当計画の例を示す図である。フレームA1~J1の各処理を、第1~第3のデータパイプラインに順次繰り返し振り分けている。第1のデータパイプラインの第1のプロセッサ23aに対し、時刻20にも処理(フレームJ1の処理)を割り当てている。第1のデータパイプラインの第2のプロセッサ23bに対し、時刻40~45にも処理(フレームJ1の処理)を割り当てている。第1のデータパイプラインの第3のプロセッサ23cに対し、時刻50にも処理(フレームJ1の処理)を割り当てている。
 データストリームAのフレームの周期は1/30fps=33.3msであり、各プロセッサ23は一周期内に33.3ms/50ms≒6つのフレームを処理可能なので、1本のデータパイプラインの処理能力が100fpsであるという条件下でも、データストリームAに対して4つ目のフレームJ1を更に割り当て可能である。
 このように、第2の例では、データストリームの処理をフレーム単位で振り分けるので、プロセッサの空き時間を更に有効に利用可能となり、タスクの処理時間の確定性とプロセッサの利用率向上を更に向上できる。上記例の場合、1つのデータパイプラインの利用率(=第2のプロセッサ23bの利用率)は、30fps×3.33本/100fps≒99%に向上できる。また、第4のデータストリームに対応する3つのプロセッサを不要にできる。
 (第3の例)
 第1のプロセッサ23aと第3のプロセッサ23cの各処理能力は200fpsであるが、第2の例の場合、300fps×1/3=100fpsまでしか使用されていない。
 そこで、第3の方法では、図10に示すように、第1のプロセッサ23aと第3のプロセッサ23cの各数をそれぞれ2つに減らし、300fps(=10本のデータストリーム)を150fps(=5本のデータストリーム)に分けて、2つの第1のプロセッサ23aに振り分ける。
 第2のプロセッサ23bは、第2の例で利用率が99%に向上できていたので、その数は3つのままとする。このとき、3つの第2のプロセッサ23bの各利用率が同じになるようにすることが好ましい。例えば、2つのうち一方の第1のプロセッサ23aの出力を100fpsと50fpsに分けて、それぞれを1列目と2列目の各第2のプロセッサ23bに振り分ける。他方の第1のプロセッサ23aの出力を50fpsと100fpsに分けて、それぞれを2列目と3列目の各第2のプロセッサ23bに振り分ける。
 図11は、図10の構成に対応するタスク割当計画の例を示す図である。図9と比較すると、プロセッサの空き時間を更に有効に利用できていることが分かる。上記例の場合、第1のプロセッサ23aと第3のプロセッサ23cの各利用率を、30fps×3.33本/200fps≒50%から、30fps×5本/200fps=75%に向上できる。
 このように、第3の例では、プロセッサの数を削減しつつ、データストリームの処理をフレーム単位で振り分けるので、タスクの処理時間の確定性とプロセッサの利用率向上をより更に向上できる。
 (その他の例)
 第1~第3の各例を組み合わせることも可能である。例えば、図12、図13のようなタスク割当計画を生成してもよい。
 (補足)
 上記タスク割当計画は、生成装置4により生成される。生成装置4は、ユーザが入力したタスク割当計画をそのままタスク割当計画として生成してもよい。生成装置4は、タスク割当計画を生成するために必要なデータを用いて、タスク割当計画を自律的に生成してもよい。その際、できる限り各段及び/又は各列の複数のプロセッサの利用率が同じになるように均一化することが好ましい。生成装置4は、タスク割当計画を生成する際、機械学習等を活用してもよい。
 [タスク割当計画の生成動作]
 図14は、タスク割当計画の生成処理フローを示す図である。
 ステップS11;
 生成部41は、事前に確定している複数のデータストリームの各データの到着時刻に基づき、その複数のデータストリームの各データの処理を、データストリーム単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の列に集約するように、又は、データ単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の段に集約するように、並列な多段な複数のプロセッサに割り当てるタスク割当計画を生成する。
 ステップS12;
 生成部41は、生成したタスク割当計画に係るソフトウェアプログラムを生成する。送信部42は、そのソフトウェアプログラムを1つ以上の処理装置20へ送信する。
 [データストリームの処理動作]
 図15は、データストリームの処理フローを示す図である。
 ステップS21;
 処理装置20の各プロセッサ23は、上記ソフトウェアプログラムを実行し、複数のデータストリームの各データが到着すると、その実行により使用されるタスク割当計画を基に、各データを順次処理する。
 [適用例]
 (適用例1)
 例えば、車両の安全運転を支援する場合に適用できる。
 交差点における車両同士の接触事故、車両と歩行者の接触事故の発生リスクを、複数カメラを統合分析することにより多元的に評価・予測し、車両・歩行者にリアルタイムにフィードバック(信号機、標識、スピーカー等)することで、事故を未然に防ぐユースケースである。
 このようなユースケースを実現するためには、カメラ映像の収集から事故発生リスクの評価・予測処理、運転者や歩行者に対する警報までを低遅延かつ確定的な遅延時間で処理する必要がある。
 そこで、本実施形態を適用することにより、交差点事故で多発している右折衝突防止や出会い頭衝突等の事故を防止可能となる。具体的には、右折時の運転者の見込み違いや見通し不良、信号無視が原因で生じる対向直進車との衝突事故を低減できる。信号機のない一時停止交差点で、運転者の不注意や見通し不良が原因で生じる事故を低減できる。
 (適用例2)
 本実施形態の技術は、高速かつ低遅延で処理を行う事例において大きな効果を発揮する。適用事例としては、以下のようなユースケースが考えられる。
 短時間電力需給調整を行うユースケースがある。工場、データセンタ、住宅、等の電力消費量や省エネ、自動車バッテリーなどの電力供給量を高頻度かつ低遅延で収集・解析(センシングとリスク評価)し、近未来の電力需給予測した結果に基づきグリッド等からの調整要望に対して需要や供給量を調整することで安定的な電力供給を実現する。
 低遅延トレーディングを行うユースケースがある。金融市場における自動取引システム(市場からデータを受信し、受信データを分析して売買注文を自動生成して、生成した注文を取引所のシステムに送信する市場参加者のシステム)において、運用成績を高めるために、時々刻々と変化する様々な市況データを用いたリアルタイム分析を実現する。
 [効果]
 本実施形態によれば、生成装置40の生成部41が、事前に確定している複数のデータストリームの各データの到着時刻に基づき、その複数のデータストリームの各データの処理を、データストリーム単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の列に集約するように、又は、データ単位で前記複数列の多段な複数のプロセッサのうちいずれか1つ以上の段に集約するように、並列な多段な複数のプロセッサに割り当てるタスク割当計画を生成するので、タスクの処理時間の確定性とプロセッサの利用率向上を両立できる。
 また、本実施形態によれば、生成装置40の生成部41が、複数のプロセッサの各利用率が同じになるように、上記タスク割当計画を生成するので、タスクの処理時間の確定性とプロセッサの利用率向上を更に向上できる。
 [その他]
 本開示は、上記実施形態に限定されない。本開示は、本開示の要旨の範囲内で数々の変形が可能である。
 上記説明した本実施形態の生成装置40は、例えば、図16に示すように、CPU901と、メモリ902と、ストレージ903と、通信装置904と、入力装置905と、出力装置906と、を備えた汎用的なコンピュータシステムを用いて実現できる。メモリ902及びストレージ903は、記憶装置である。当該コンピュータシステムにおいて、CPU901がメモリ902上にロードされた所定のプログラムを実行することにより、生成装置40の各機能が実現される。
 生成装置40は、1つのコンピュータで実装されてもよい。生成装置40は、複数のコンピュータで実装されてもよい。生成装置40は、コンピュータに実装される仮想マシンであってもよい。
 生成装置40用のプログラムは、HDD、SSD、USBメモリ、CD、DVD等のコンピュータ読取り可能な記録媒体に記憶できる。コンピュータ読取り可能な記録媒体は、例えば、非一時的な(non-transitory)記録媒体である。生成装置40用のプログラムは、通信ネットワークを介して配信することもできる。
 1 システム
 10 カメラ
 20 処理装置
 21 NIC
 22 メモリ
 23a 第1のプロセッサ
 23b 第2のプロセッサ
 23c 第3のプロセッサ
 30 ユーザ端末
 40 生成装置
 41 生成部
 42 送信部
 43 記憶部
 50 通信ネットワーク
 901 CPU
 902 メモリ
 903 ストレージ
 904 通信装置
 905 入力装置
 906 出力装置

Claims (4)

  1.  事前に確定している複数のデータストリームの各データの到着時刻に基づき、前記複数のデータストリームの各データの処理を、データストリーム単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の列に集約するように、又は、データ単位で前記複数列の多段な複数のプロセッサのうちいずれか1つ以上の段に集約するように、並列な多段な複数のプロセッサに割り当てるタスク割当計画を生成する生成部、
     を備える生成装置。
  2.  前記生成部は、
     前記複数のプロセッサの各利用率が同じになるように、前記タスク割当計画を生成する請求項1に記載の生成装置。
  3.  生成装置で行う生成方法において、
     事前に確定している複数のデータストリームの各データの到着時刻に基づき、前記複数のデータストリームの各データの処理を、データストリーム単位で複数列の多段な複数のプロセッサのうちいずれか1つ以上の列に集約するように、又は、データ単位で前記複数列の多段な複数のプロセッサのうちいずれか1つ以上の段に集約するように、並列な多段な複数のプロセッサに割り当てるタスク割当計画を生成する、
     生成方法。
  4.  請求項1又は2に記載の生成装置としてコンピュータを機能させる生成プログラム。
PCT/JP2024/007507 2024-02-29 2024-02-29 生成装置、生成方法、及び、生成プログラム Pending WO2025182000A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2024/007507 WO2025182000A1 (ja) 2024-02-29 2024-02-29 生成装置、生成方法、及び、生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2024/007507 WO2025182000A1 (ja) 2024-02-29 2024-02-29 生成装置、生成方法、及び、生成プログラム

Publications (1)

Publication Number Publication Date
WO2025182000A1 true WO2025182000A1 (ja) 2025-09-04

Family

ID=96920195

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2024/007507 Pending WO2025182000A1 (ja) 2024-02-29 2024-02-29 生成装置、生成方法、及び、生成プログラム

Country Status (1)

Country Link
WO (1) WO2025182000A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265976A (ja) * 1992-03-19 1993-10-15 Hitachi Ltd 並列計算機およびそのためのネットワーク
CN111176830A (zh) * 2019-12-03 2020-05-19 支付宝实验室(新加坡)有限公司 信息流的分配方法、装置及服务器系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265976A (ja) * 1992-03-19 1993-10-15 Hitachi Ltd 並列計算機およびそのためのネットワーク
CN111176830A (zh) * 2019-12-03 2020-05-19 支付宝实验室(新加坡)有限公司 信息流的分配方法、装置及服务器系统

Similar Documents

Publication Publication Date Title
JP7637747B2 (ja) 機械学習ワークロードのためのタスクスケジューリング
CN107038069B (zh) Hadoop平台下动态标签匹配DLMS调度方法
CN116820784B (zh) 一种面向推理任务QoS的GPU实时调度方法及系统
US20130151747A1 (en) Co-processing acceleration method, apparatus, and system
CN111190735B (zh) 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统
WO2023159652A1 (zh) 一种ai系统、内存访问控制方法及相关设备
KR20210084620A (ko) 프로세서에서의 여유시간 인식, 동적 우선순위 변경
US9471387B2 (en) Scheduling in job execution
US20180203810A1 (en) Priority framework for a computing device
US20180335957A1 (en) Lock-free datapath design for efficient parallel processing storage array implementation
Caheny et al. Reducing cache coherence traffic with a numa-aware runtime approach
CN120196421A (zh) 一种gpu资源虚拟化算力调度的方法及装置
Wen et al. Fast DRL-based scheduler configuration tuning for reducing tail latency in edge-cloud jobs
Ahmed et al. A hybrid and optimized resource scheduling technique using map reduce for larger instruction sets
CN104598311A (zh) 一种面向Hadoop的实时作业公平调度的方法和装置
CN105740249B (zh) 一种大数据作业并行调度过程中的处理方法及其系统
WO2021199396A1 (ja) 分散処理ノードおよび分散処理システム
Khalil et al. Survey of Apache Spark optimized job scheduling in Big Data
CN120687216A (zh) 任务调度方法、装置及电子设备
Elliott et al. Gpusync: Architecture-aware management of gpus for predictable multi-gpu real-time systems
WO2025182009A1 (ja) 生成装置、生成方法、及び、生成プログラム
JP7589933B2 (ja) 分散環境における深層学習トレーニングの最適化のためのランタイムにおけるサービスクラス属性の初期化及び管理
CN116382861A (zh) Numa架构的服务器网络进程自适应调度方法、系统及介质
Zhao et al. MHQoS: A multi-user hierarchical quality of service optimization for P2P storage
CN120909744B (zh) 数据流处理器的任务调度方法、系统、设备以及存储介质

Legal Events

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

Ref document number: 24927280

Country of ref document: EP

Kind code of ref document: A1