Метод динамічної компіляції Python програм, що орієнтовані на обробку масивів
Вантажиться...
Дата
2018-05
Автори
Науковий керівник
Назва журналу
Номер ISSN
Назва тому
Видавець
Анотація
Актуальність теми. Мова програмування Python стала популярною
платформою для аналізу даних і наукових обчислень. Python транслює
інструкції вихідного програмного коду в проміжне представлення, відоме як
байт-код, і потім інтерпретує цей байт-код. Байт-код забезпечує
переносимість програм, оскільки це платформо-незалежний формат. Однак
через те, що Python не створює двійковий машинний код (наприклад,
машинні інструкції для мікропроцесора Intel), деякі програми на мові Python
можуть працювати повільніше своїх аналогів, написаних на мовах що
компілюються у машинний код, таких як С. Для вирішення проблеми низької
продуктивності стандартного інтерпретатора мови Python, математично
інтенсивні обчислення, як правило, переносяться на бібліотечні функції, які
написані на високопродуктивних мовах програмування. Якщо така бібліотека
для виконання певного алгоритму відсутня, програмісту доводиться
прийняти низьку продуктивність або перейти на мову нижчого рівня для
ефективної реалізації поставленої задачі.
Таким чином, у процес розробки проекту входить етап
прототипування алгоритмів на мови програмування нижчого рівня, а потім
безпосередньо відбувається процес переносу розділів з низькою
продуктивністю у такій мові як Python, на мову нижчого рівня. Цей етап
може займати багато часу, призводити до появи помилок і відводить увагу
розробника від початкової задачі, тому в даній роботі запропоновано метод
динамічної компіляції Python програм орієнтованих на обробку масивів,
який завдяки оптимизаціям високого рівня, визначенню типів вхідних
даних та використанню переваг паралельного виконання коду надає значне
прискорення часу виконання програм, які виконують операції над
масивами.
Об’єктом дослідження є метод динамічної компіляції Python
програм, що орієнтовані на обробку масивів.
Предметом дослідження є методи і алгоритми принципів трансляції
та виконання програмного коду, оптимізації проміжного представлення
програмного коду та оптимізації компіляції програм, що орієнтовані на
обробку масивів. Мета і задачі дослідження: створити метод динамічної компіляції
Python програм, що орієнтовані на обробку масивів, для вирішення проблеми
низької продуктивності математично інтенсивних обчислень над масивами у
мові Python та уникнення прототипування алгоритмів на мови нижчого рівня
та переносу розділів з низькою продуктивністю на такі мови.
Запропонований метод надасть можливість поєднати зручність використання
мови Python та забезпечить швидкість виконання коду як на ефективних
мовах програмування. Провести експерименти порівняння часу виконання
ряду алгоритмів на різних апаратних засобах.
Опис
Ключові слова
динамічна компіляція, паралелізм даних, масивно-орієнтоване програмування, Python, dynamic compilation, data parallelism, massively-oriented programming, Python, динамическая компиляция, параллелизм данных, массивно-ориентированное программирование, Python
Бібліографічний опис
Кривомаз, М. Є. Метод динамічної компіляції python програм, що орієнтовані на обробку масивів : магістерська дис. : 123 Комп‘ютерна інженерія («Системне програмування») / Кривомаз Максим Євгенович. – Київ, 2018. – 118 с.