• 沒有找到結果。

在本篇論文中,我們針對多核心系統上具有可平行化週期性任務以及循序週期性任 務集合,提出一系列可以將任務分配到處理器的排程機制,並以理論方式探討這套機制 中為何採用這些方法,以實驗證明方法之優劣。系統中的可平行化任務由多個片段所組 成,且有高度的使用率,也就是在單一核心上的執行時間高過於其週期,此外,任務的 片段間有執行順序關係,片段之子任務分配至處理器時,必須考慮到順序限制,因此利 用Equal Flexibility (EQF)機制將順序限制轉換為時間限制,讓每個片段的衍生出子任務 具有各自的相對截限時間,子任務之間因為時間限制的關係,變成各自獨立,每個子任 務只需在自己的截限時間前完成,則可平行化任務即可滿足整體的即時需求。

而對於平行化任務如何選定一個適當的平行度組合是一個重要的議題,因為平行度 提高會額外增加執行時間成本,選擇了不適當的平行度都會對系統造成不必要的負擔,

對於滿足即時需求也會成為阻礙。如果只考慮選擇所有子任務的使用密度總和為最小之 平行度組合的篩選標準是不適合的,基於片段之間的執行區間不重疊,因此提出考慮了 不同片段的子任務共享處理器計算能力的機制,想法如下:同一個可平行化任務且不同 片段之子任務若分配到同一個處理器,由於各個子任務間的可執行區間不會互相干涉,

因此可以共享其計算能力,並且只需保留其中使用密度最大的子任務所需求的計算能力 即可。

88

基於處理器計算能力共享機制,提出了新的篩選平行度組合的標準-選擇共享後子 任務的使用密度總和為最小的平行度組合,將同任務不同片段的子任務組成共享集合,

並以共享集合中子任務最大使用密度為該集合所需求計算能力,將所有共享集合的子任 務最大使密度加總計算,即可求得可平行化任務共享後子任務的使用密度總和,因此從 不同的平行度組合篩選出最小的總和值,即為最適當的平行度組合。

在可平行化任務前置處理完成後,將所有的循序任務以及可平行化任務衍生而成的 子任務依使用率(密度)由最大排序至最小,此動作可以有效的提升任務集合的可排程率。

而在排序結束後,接著將這些(子)任務逐一分配至處理器。對於將任務分配至處理器的 機制,我們同時採用了處理器計算能力共享的機制與 Worst Fit 分配機制並各自分成兩 個階段,主要是以共享機制為優先,會讓子任務加入一個使子任務最大使用密度增加幅 度最小的共享集合,以降低處理器的負載為首要目標。若子任務沒有可以加入的共享集 合才會使用Worst Fit 分配機制,由於循序任務不適用共享機制,因此只會使用 Worst Fit 分配機制。

最後在實驗中,我們分別在排程方法的不同階段採用不同機制對於可排程率、耗電 性以及兩者之整體表現作比較,在設定可平行化任務之子任務的相對截限時間的機制中 採用 Equal Slack (EQS)與 Equal Flexibility (EQF);在任務分配的機制中也分別採用了 First Fit (FF)、Best Fit (BF)與 Worst Fit (WF);並且分別以測試所有可平行度組合,與測 試可平行片段的平行度皆相同的平行度組合來驗證配合共享機制下。經由實驗證明,我 們所提出的排程方法能有較佳高的可排程率與較低的耗電性。

在未來展望中,我們將試圖延伸到異質性多核心處理器平台,由於速度不一致,因 此可排程機制將有其差異。可平行化任務的模式如果是更複雜的Directed Acyclic Graph (DAG),原提出之機制可能無法直接套用,應該需要其他的機制。此外,如果任務的執 行時並非真正用到原本所估計的最大執行時間,因此提早結束,如何將未使用到的時間 用在降速,讓系統達到更低的耗電性,也是一個值得探討的方向。

89

文獻

[1] Opencl, 2017. https://www.khronos.org/opencl/.

[2] Openmp, 2017. http://www.openmp.org/.

[3] S. Baruah and E. Bini. Partitioned scheduling of sporadic task systems: an ILP-based approach. In Conference on Design and Architectures for Signal and Image Processing, Bruxelles, Belgium, November 2008.

[4] V. Berten, P. Courbin, and J. Goossens. Gang fixed priority scheduling of periodic moldable real-time tasks. In JRWRTC ’11, 2011, pp. 9–12.

[5] M. Bertogna, M. Cirinei, and G. Lipari. Schedulability analysis of global scheduling algorithms on multiprocessor platforms. IEEE Trans. Parallel Distributed Systems, vol.

20, no. 4, pp. 553–566.

[6] L. C. Chien. Scheduling Algorithm with Energy-Response Trade-off Considerations for Mixed Task Sets. Unpublished master's thesis, National University of Kaohsiung, Kaohsiung, 2013.

[7] S. Collette, L. Cucu, and J. Goossens. Integrating job parallelism in real-time scheduling theory. Information Processing Letters, vol. 106, no. 5, pp. 180–187, May 2008.

[8] E. G. Coffman, M. R. Garey, and D. S. Johnson. Approximation algorithms for bin packing: a survey in approximation algorithms for np-hard problems. PWS, Boston, 1997.

[9] P. Courbin, I. Lupu and J. Goossens. Scheduling of hard real-time phase multi-thread (MPMT) periodic tasks. Real-Time Systems, vol. 49, no. 2, pp. 239–266, 2013.

[10] I. Hong, G. Qu, M. Potkonjak, and M.B. Srivastava. Synthesis techniques for low-power hard real-time systems on variable voltage processors. the 19th IEEE Real-Time Systems Symposium, pp. 178–187, 1998.

90

[11] C. F. Kuo, Y. F. Lu, S. P. Lu, and Y. J. Yu. Subdeadline assignment for real-time tasks with multiple parallelization options on multiprocessor systems. 2017 IEEE International Conference on Applied System Innovation (ICASI 2017), May. 2017.

[12] F J. Kwon, K. W. Kim, S. Paik, J. Lee, and C. G. Lee. Multicore scheduling of parallel real-time tasks with multiple parallelization options. In IEEE 21st Real-Time and Embedded Technology and Applications Symposium (RTAS), pp. 232– 244, April 2015.

[13] S. Kato, N. Yamasaki, and Y. Ishikawa. Semi-Partitioned Scheduling of Sporadic Task Systems on Multiprocessors. In Proc. of the Euromicro Conference on Real-Time Systems, 2009.

[14] Jane W.S. Liu. Real-Time Systems. Prentice Hall, 2000.

[15] H. Y. Lin. Schedule Algorithm for Real-Time Tasks with Multiple Parallelization Options on Multicore Systems. Unpublished master's thesis, National University of Kaohsiung, Kaohsiung, 2013.

[16] K. Lakshmanan, S. Kato, and R. Rajkumar. Scheduling parallel realtime tasks on multi-core processors. In RTSS’10, 2010, pp. 259–268.

[17] C. Maia, P. M. Yomsi, L. Nogueira, and L. M. Pinho. Real-time semi-partitioned scheduling of fork-join tasks using work-stealing. In EURASIP Journal on Embedded Systems, 2017.

[18] G. Nelissen, V. Berten, J. Goossens, and D. Milojevic. Techniques optimizing the number of processors to schedule multi-threaded tasks. In the 24th Euromicro Conference on Real-Time Systems, 2012.

[19] A. Saifullah, D. Ferry, J. Li, K. Agrawal, C. Lu, and C. Gill. Parallel Real-Time Scheduling of DAGs. IEEE Transactions on Parallel & Distributed Systems, no. 12, pp.

3242–3252, 2014.

相關文件