Метод динамічної компіляції 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 с.

DOI