Разделение данных и асинхронная обработка для повышения производительности встроенного программного обеспечения на многокодных процессорах
Ключевые слова:
повышение производительности встроенного программного обеспечения, многоядерные процессы, многопоточность, разделение данных, асинхронная обработкаАннотация
Сегодня обеспечение информационной безопасности крайне неизбежно и актуально. Мы также наблюдаем активное развитие встраиваемых IoT-систем. В результате основное внимание уделяется исследованиям по обеспечению информационной безопасности встроенного программного обеспечения, особенно в задаче повышения скорости процесса шифрования. Однако исследованиям по оптимизации встроенного программного обеспечения на многоядерных процессорах для обеспечения информационной безопасности и повышения производительности встроенного программного обеспечения не уделялось особого внимания. В статье предлагается и развивается метод повышения производительности встроенного программного обеспечения на многоядерных процессорах на основе разделения данных и асинхронной обработки в задаче шифрования данных. Данные используются глобально для извлечения любыми потоками. Данные разбиты на разные разделы, также программа устанавливается по многопоточной модели. Каждый поток обрабатывает раздел разделенных данных. Размер каждой части данных пропорционален скорости обработки и размеру кэша ядра многоядерного процессора. Потоки работают параллельно и не нуждаются в синхронизации, но необходимо совместно использовать глобальную общую переменную для проверки состояния выполнения системы. Наше исследование встроенного программного обеспечения основано на безопасности данных, поэтому мы протестировали и оценили метод с несколькими блочными шифрованиями, такими как AES, DES и т. д. На Raspberry Pi3. В нашем результате средний показатель повышения производительности составил около 59,09%. В частности, наши экспериментальные результаты с алгоритмами шифрования показали: AES - 51,78%, DES - 57,59%, Triple DES - 66,55%.
Литература
2. Lim, G. and Suh, S.-B. User-Level Memory Scheduler for Optimizing Application Performance in NUMA-Based Multicore Systems. IEEE 5th International Conference on Software Engineering and Service Science. 2014. 10.1109/ICSESS.2014.6933553.
3. Wei, X., Ma, L., Zhang, H. & Liu, Y. Multi-core, Multi-thread based Optimization Algorithm for Large-scale Traveling Salesman Problem. Alexandria Engineering Journal 60, 2021, pp. 189-197.
4. Khalib, Z.I.A., Ng, H.Q. Elshaikh, M., and Othman, M.N., Optimizing Speedup on Multicore Platform with OpenMP Schedule Clause and Chunk Size, IOP Conference Series. 2020. Materials Science and Engineering 767, 012037.
5. Lingampalli, S., Mirza, F., Raman, T. and Agonafer, D. Performance Optimization of Multi-core Processors using Core Hopping - Thermal and Structural. Proc. of the 28th Annual IEEE Semiconductor Thermal Measurement and Management Symposium (SEMI-THERM). 2012. pp. 112-117.
6. Gunther, N.J., Subramanyam, S., and Parvu, S. A Methodology for Optimizing Multithreaded System Scalability on Multi-cores. Programming Multi-core and Many-core Computing Systems. 2011. CoRR abs/1105.4301.
7. Rengasamy, V., Fu, T.-Y., Lee, W.-C., and Madduri, K. Optimizing Word2Vec Performance on Multicore Systems. Proceedings of the Seventh Workshop on Irregular Applications. 2017. Architectures and Algorithms. Association for Computing Machinery. New York. NY. USA.
8. Wipe, E., Miller, J.E., Choi, I., Yeung, D. Amarasinghe, S.P., and Agarwal, A. Multicore Performance Optimization Using Partner Cores. 2011. in Michael McCool & Mendel Rosenblum. 'HotPar'. USENIX Association.
9. Zhou, Y., He, F., Hou, N., and Qiu, Y. Parallel Ant Colony Optimization on Multi-core SIMD CPUs. Future Generation Computer Systems 79. 2018. pp. 473-487.
10. Emmi, M., Lal, A., and Qadeer, S. Asynchronous Programs with Prioritized Task-buffers. SIGSOFT FSE. 2012. 48.
11. Emmi, M., Ganty, P., Majumdar, R., Rosa-Velardo, F. Analysis of Asynchronous Programs with Event-Based Synchronization ESOP 2015: Programming Languages and Systems. 2015. pp. 535-559.
12. Kornaros, G. Multi-Core Embedded Systems. CRC Press. 2010. Inc., USA.
13. Bodake, V. and Gawande, R.M. A Review on An Encryption Engines For Multi Core Processor Systems. IOSR Journal of Electronics and Communication Engineering (IOSR-JECE). e-ISSN: 2278-2834. p-ISSN: 2278-8735. pp. 38-46.
14. Polychroniou, O. and Ross, K.A. A Comprehensive Study of Main-memory Partitioning and its Application to Large-scale Comparison- and Radix-sort. Print SIGMOD. 2014. pp. 755–766.
15. Schuhknecht, F.M., Khanchandani, P., and Dittrich, J. On the Surprising Difficulty of Simple Things: the case of radix partitioning. VLDB. 8(9): 2015. pp. 934–937.
16. Wu, L., Barker, R.J., Kim, M.A., and Ross, K.A. Navigating Big Data with High-throughput, Energy-efficient Data Partitioning. Print SIGARCH. volume 41. 2013. pp. 249–260.
17. Wang, Z., He, B., and Zhang, W. A Study of Data Partitioning on OpenCL-based FPGAs. In FPL. 2015. pp. 1–8.
18. Ke, Q., Prabhakaran, V., Xie, Y., Yu, Y., Wu, J., Yang, J. Optimizing Data Partitioning for Data-Parallel Computing. Hot Topics in Operating Systems (HotOS XIII) | May 2011. Published by USENIX.
19. Cieslewicz, J. and Ross, K. Data Partitioning on Chip Multiprocessors. DaMoN '08: Proceedings of the 4th international workshop on Data management on new hardware June 2008. pp. 25–34. DOI: 10.1145/1457150.1457156.
20. Zhong, Z.et al. Data Partitioning on Heterogeneous Multicore and Multi-gpu Systems Using Functional Performance Models of Data-parallel Applications in Cluster. 2012. pp. 191–199.
21. Kara, K., Giceva, J., and Alonso, G. FPGA-based Data Partitioning. Proceedings of the 2017 ACM International Conference on Management of Data. May 2017. pp. 433–445. DOI: 10.1145/3035918.3035946.
22. Zhong, Z., Rychkov, V., and Lastovetsky, V. Data Partitioning on Multicore and Multi-GPU Platforms Using Functional Performance Models. IEEE Transactions on Computers. Volume 64. Issue 9. Sept. 1 2015. Doi: 10.1109/TC.2014.2375202.
23. Alanazi, H.O., Zaidan, B.B., Zaidan, A.A., Jalab, H.A., Shabbir, M., and Al-Nabhani, Y. New Comparative Study Between DES, 3DES and AES. J. of computing. volume 2. issue 3. March 2010. ISSN 2151-9617.
24. Farooq, U. and Faisal Aslam, M. Comparative Analysis of Different AES Implementation Techniques for Efficient Resource Usage and better Performance of an FPGA. Journal of King Saud University - Computer and Information Sciences. Volume 29. Issue 3. July 2017. pp. 295-302.
25. Sen, K. and Viswanathan, M. Model Checking Multithreaded Programs with Asynchronous Atomic Methods. In CAV. 2006. pp. 300–314.
26. Kidd, N., Jagannathan, S., and Vitek, J. One Stack to Run Them all: Reducing Concurrent Analysis to Sequential Analysis under Priority Scheduling. In SPIN ’10: Proc. of the 17th International Workshop on Model Checking Software. volume 6349 of LNCS, Springer. 2010. pp. 245–261.
27. Lian, X., Huang, Y., Li, Y., and Liu, J. Asynchronous Parallel Stochastic Gradient for Nonconvex Optimization. NIPS 2015: pp. 2737-2745.
28. Alba, E. and Troya, J.M. Analyzing Synchronous and Asynchronous Parallel Distributed Genetic Algorithms, Future Generation Computer Systems. Volume 17. Issue 4. January 2001. pp. 451–465.
Data Partitioning and Asynchronous Processing to Improve the Embedded Software Performance on Multicore Processors
Abstract
Nowadays, ensuring information security is extremely inevitable and urgent. We are also witnessing the strong development of embedded systems, IoT. As a result, research to ensure information security for embedded software is being focused. However, studies on optimizing embedded software on multi-core processors to ensure information security and increase the performance of embedded software have not received much attention. The paper proposes and develops the embedded software performance improvement method on multi-core processors based on data partitioning and asynchronous processing. Data are used globally to be retrieved by any threads. The data are divided into different partitions, and the program is also installed according to the multi-threaded model. Each thread handles a partition of the divided data. The size of each data portion is proportional to the processing speed and the cache size of the core in the multi-core processor. Threads run in parallel and do not need synchronization, but it is necessary to share a general global variable to check the executing status of the system. Our research on embedded software is based on data security, so we have tested and assessed the method with several block ciphers like AES, DES, etc., on Raspberry PI3. The average performance improvement rate achieved was 59.09%.
Опубликован
Как цитировать
Раздел
Copyright (c) Minh Quang Le

Это произведение доступно по лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная.
Авторы, которые публикуются в данном журнале, соглашаются со следующими условиями: Авторы сохраняют за собой авторские права на работу и передают журналу право первой публикации вместе с работой, одновременно лицензируя ее на условиях Creative Commons Attribution License, которая позволяет другим распространять данную работу с обязательным указанием авторства данной работы и ссылкой на оригинальную публикацию в этом журнале. Авторы сохраняют право заключать отдельные, дополнительные контрактные соглашения на неэксклюзивное распространение версии работы, опубликованной этим журналом (например, разместить ее в университетском хранилище или опубликовать ее в книге), со ссылкой на оригинальную публикацию в этом журнале. Авторам разрешается размещать их работу в сети Интернет (например, в университетском хранилище или на их персональном веб-сайте) до и во время процесса рассмотрения ее данным журналом, так как это может привести к продуктивному обсуждению, а также к большему количеству ссылок на данную опубликованную работу (Смотри The Effect of Open Access).