Порівняння багатопроцесорної та багатопоточної реалізацій ентропійного підходу для імпутування пропусків у даних на мові програмування Python
Розглядається порівняння послідовної, багатопроцесорної та багатопоточної реалізацій ентропійного підходу для імпутування пропусків у даних на мові програмування Python. Основна мета роботи полягає у дослідженні підходів щодо оптимізації обчислень при реалізації ентропійного підходу для імпутування...
Saved in:
Main Authors: | , |
---|---|
Format: | Article |
Language: | English |
Published: |
Oles Honchar Dnipro National University
2024-06-01
|
Series: | Challenges and Issues of Modern Science |
Subjects: | |
Online Access: | https://cims.fti.dp.ua/j/article/view/131 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Summary: | Розглядається порівняння послідовної, багатопроцесорної та багатопоточної реалізацій ентропійного підходу для імпутування пропусків у даних на мові програмування Python. Основна мета роботи полягає у дослідженні підходів щодо оптимізації обчислень при реалізації ентропійного підходу для імпутування пропусків у даних. Автори пояснюють обмеження інтерпретатора Python щодо багатопоточності через наявність Global Interpreter Lock (GIL), що унеможливлює повноцінну паралельну обробку даних в багатопотоковому середовищі. Натомість пропонується використання багатопроцесорної обробки, де кожен процес має власний інтерпретатор Python і GIL, що дозволяє ефективно розподіляти обчислювальні задачі на кілька ядер процесора. Для експериментальної частини роботи ви-користовується набір даних UCI Heart Disease Data, розміщений на платформі Kaggle. Здійснюється штучне введення пропусків, далі імпутація за допомогою різних реалізацій на базі ентропійного підходу, оцінка точності імпутації та часу виконання алгоритмів. Автори розглядають три підходи: послідовний, багатопоточний та багатопроцесорний, та порівнюють їх ефективність. Результати дослідження показують, що багатопотоковий підхід не дає переваги у швидкодії в порівнянні з послідовним підходом, а інколи навіть погіршує продуктивність через витрати часу на перемикання між потоками. Навпаки, багатопроцесорний підхід демонструє зменшення часу обчислень, що підтверджує його ефективність для задач імпутування пропусків у даних. У висновках автори зазначають, що оптимізація обчислень на Python потребує врахування особливостей GIL та рекомендують використовувати багатопроцесорні обчислення для досягнення кращої продуктивності. Надаються рекомендації щодо подальшої оптимізації, включаючи використання векторних обчислень та уникнення надлишкових операцій вводу-виводу. Ця робота має практичне значення для дослідників у галузі науки про дані, які працюють з Python і стикаються з проблемами паралельної обробки даних.
|
---|---|
ISSN: | 3083-5704 |