Proceedings of the International scientific and practical conference ―Science and Society‖ (February 26-28, 2026) / Publisher website: www.naukainfo.com. – Kharkiv, Ukraine, 2026. - 355 p.

97 Суть цієї системи в наступному: коли виконується аналіз коду на предмет потенційних помилок синхронізації, спочатку ми будуємо модель визначеної частини паралельного коду у вигляді спрощеної моделі. Далі, ми верифікуємо модель, і у випадку знаходження потенційних проблем виправляємо їх безпосередньо в побудованій моделі так, щоб вона стала коректною. Тоді на основі виправленої моделі ми генеруємо новий код, який замінює старий. Опісля ми додатково також виконуємо тюнінг паралельності для визначення найкращих параметрів пулу потоків для ще кращого покращення продуктивності. Основною перевагою запропонованого підходу є висока точність виявлення та виправлення коду. Рішення використовує сильні сторони кожного з визначених підходів до автоматизованої паралелізації коду. Водночас, застосування комплексного підходу негативно впливає на час роботи рішення. Це зроблено навмисно заради досягнення високої точності виявлення і виправлення проблем. Висновки. Проведений аналіз існуючих підходів до автоматизації паралельних обчислень в C# засвідчив, що дана тема досліджена недостатньо. Підхід із використанням статичного аналізу коду, попри високу швидкість виконання, може давати хибні результати. Використанням моделей для побудови програми з подальшої генерацією коду дозволяє досягти високої точності у забезпеченні паралельності в коду, однак не застосовне до існуючого коду. Водночас, модель Promela і верифікатор SPIN не мають такого обмеження, але даний підхід не передбачає генерації коду. А підхід із автоматизованим тюнінгом коду дозволяє покращити вже існуючий паралелізм шляхом тонкого налаштування параметрів пулу потоків. Запропонована комплексна система надає змогу використати сильні сторони кожного з підходів для досягнення високої точності визначення і виправлення проблем з паралельними обчисленнями в коді, написаному на мові програмування C#. Разом з тим, рішення навмисно нехтує часом, необхідним на застосування такого комплексного підходу.

RkJQdWJsaXNoZXIy MTAxMzIwNA==