VivaMP — це аналізатор вихідного коду паралельних додатків, створених на основі технології OpenMP. Інструмент VivaMP є lint-подібний статичний аналізатор коду на мовах C / , інтегрується в середовище розробки Visual Studio 2005/2008.
Технологія паралельного програмування OpenMP: переваги і недоліки
Сучасний процесор (будь він в настільному комп'ютері або в ноутбуці) має кілька ядер. Найчастіше це два ядра, трохи рідше три або чотири. Однак зовсім скоро і вісім ядер на звичайної домашньої користувальницької машині будуть звичайним явищем. Тому найпрогресивніші розробники програмних продуктів вже зараз замислюються над тим, як зробити свою програму паралельної. Тобто як забезпечити завантаження всіх доступних ядер процесора. І хоча абсолютно коректним рішенням було б розробкою нової паралельної версії програмного продукту, в реальності ж зазвичай «распараллелівать» наявну послідовну версію. Існує досить багато різних технологій паралельного програмування, проте нас цікавить, перш за все, технологія OpenMP, як найперспективніша для систем зі спільною пам'яттю. Тобто найперспективніша для розпаралелювання програм призначених для роботи на персональних комп'ютерах. Вона дозволяє зробити існуючу програму паралельної, переписавши окремі її фрагменти. Все це виглядає (і дійсно є) дуже привабливим для розробників, якби не один нюанс. Підтримка технології OpenMP в існуючих засобах розробки реалізована так, що дуже легко допустити помилки, які ніяк не діагностуються. Через що складність розробки OpenMP-рішень значно зростає.
Інструмент підтримки розробників OpenMP-рішень
Для зменшення складності розробки OpenMP-рішень компанією ТОВ «СіПроВер», що займається створенням програмних інструментів в галузі аналізу коду, розроблений програмний продукт VivaMP.
Якщо в розроблюваної паралельній програмі є помилки, які не діагностуються компілятором, то інструмент VivaMP знайде їх. Після чого розробник, скориставшись вбудованою в VivaMP довідкової системою, легко ці помилки виправить. Після перевірки окремого файлу, проекту або всього рішення аналізатор виводить в Error List список потенційних помилок, які розробник повинен переглянути. За будь-які виявлені помилку доступна інформація в довідковій системі, що інтегрується в MSDN.
Інструмент VivaMP дозволяє
- знайти старі помилки в існуючих OpenMP-рішеннях;
- виявити помилки в нових розроблюваних OpenMP-рішеннях;
- отримати інформацію щодо виправлення помилок з довідкової системи;
- підвищити продуктивність рішень на базі OpenMP;
- вивчити більшість можливих помилок в OpenMP-рішеннях як по документації, так і на демонстраційній програмі ParallelSample, поставляються разом з дистрибутивом VivaMP.
Зазначені способи застосування VivaMP роблять інструмент корисним як початківцям OpenMP-програмістам, так і їх більш досвідченим колегам.
Переваги статичного аналізу над іншими методиками пошуку паралельних помилок
Інструмент VivaMP є статичним аналізатором коду. Це означає, що на відміну від динамічних аналізаторів, не потрібно запуск програми, що перевіряється для виявлення помилок і результат роботи статичного аналізатора не залежить від середовища виконання. Статичний аналіз дозволяє перевірити код, рідко який одержує управління або виконується в разі відпрацювання рідкісних помилкових ситуацій.
Вважається, що верифікація паралельних програм методом статичного аналізу скрутна і малоефективна в силу неможливості виявити помилки, що виникають при взаємодії різних частин програм. Але для технології OpenMP статичний аналіз для виявлення помилок в коді можливий і ефективний. Справа в «локальності» технології OpenMP. Паралельний код в програмах, як правило, буває зібраний в одному місці, що дозволяє виконати детальний статичний аналіз для знаходження помилок
Примітки
- Андрей Карпов. Тестирование параллельных программ.
- . Архів оригіналу за 24 листопада 2016. Процитовано 23 листопада 2016.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - Алексей Колосов, Евгений Рыжков, Андрей Карпов. 32 подводных камня OpenMP при программировании на Си++. http://www.viva64.com/ru/a/0054/ [ 24 листопада 2016 у Wayback Machine.]
Джерела
- Алексей Колосов, Евгений Рыжков, Андрей Карпов 32 подводных камня OpenMP при программировании на Си++ [ 24 листопада 2016 у Wayback Machine.].
- Андрей Карпов Тестирование параллельных программ [ 24 листопада 2016 у Wayback Machine.] // pvs-studio
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
VivaMP ce analizator vihidnogo kodu paralelnih dodatkiv stvorenih na osnovi tehnologiyi OpenMP Instrument VivaMP ye lint podibnij statichnij analizator kodu na movah C S integruyetsya v seredovishe rozrobki Visual Studio 2005 2008 Tehnologiya paralelnogo programuvannya OpenMP perevagi i nedolikiSuchasnij procesor bud vin v nastilnomu komp yuteri abo v noutbuci maye kilka yader Najchastishe ce dva yadra trohi ridshe tri abo chotiri Odnak zovsim skoro i visim yader na zvichajnoyi domashnoyi koristuvalnickoyi mashini budut zvichajnim yavishem Tomu najprogresivnishi rozrobniki programnih produktiv vzhe zaraz zamislyuyutsya nad tim yak zrobiti svoyu programu paralelnoyi Tobto yak zabezpechiti zavantazhennya vsih dostupnih yader procesora I hocha absolyutno korektnim rishennyam bulo b rozrobkoyu novoyi paralelnoyi versiyi programnogo produktu v realnosti zh zazvichaj rasparallelivat nayavnu poslidovnu versiyu Isnuye dosit bagato riznih tehnologij paralelnogo programuvannya prote nas cikavit persh za vse tehnologiya OpenMP yak najperspektivnisha dlya sistem zi spilnoyu pam yattyu Tobto najperspektivnisha dlya rozparalelyuvannya program priznachenih dlya roboti na personalnih komp yuterah Vona dozvolyaye zrobiti isnuyuchu programu paralelnoyi perepisavshi okremi yiyi fragmenti Vse ce viglyadaye i dijsno ye duzhe privablivim dlya rozrobnikiv yakbi ne odin nyuans Pidtrimka tehnologiyi OpenMP v isnuyuchih zasobah rozrobki realizovana tak sho duzhe legko dopustiti pomilki yaki niyak ne diagnostuyutsya Cherez sho skladnist rozrobki OpenMP rishen znachno zrostaye Instrument pidtrimki rozrobnikiv OpenMP rishenDlya zmenshennya skladnosti rozrobki OpenMP rishen kompaniyeyu TOV SiProVer sho zajmayetsya stvorennyam programnih instrumentiv v galuzi analizu kodu rozroblenij programnij produkt VivaMP Yaksho v rozroblyuvanoyi paralelnij programi ye pomilki yaki ne diagnostuyutsya kompilyatorom to instrument VivaMP znajde yih Pislya chogo rozrobnik skoristavshis vbudovanoyu v VivaMP dovidkovoyi sistemoyu legko ci pomilki vipravit Pislya perevirki okremogo fajlu proektu abo vsogo rishennya analizator vivodit v Error List spisok potencijnih pomilok yaki rozrobnik povinen pereglyanuti Za bud yaki viyavleni pomilku dostupna informaciya v dovidkovij sistemi sho integruyetsya v MSDN Instrument VivaMP dozvolyaye znajti stari pomilki v isnuyuchih OpenMP rishennyah viyaviti pomilki v novih rozroblyuvanih OpenMP rishennyah otrimati informaciyu shodo vipravlennya pomilok z dovidkovoyi sistemi pidvishiti produktivnist rishen na bazi OpenMP vivchiti bilshist mozhlivih pomilok v OpenMP rishennyah yak po dokumentaciyi tak i na demonstracijnij programi ParallelSample postavlyayutsya razom z distributivom VivaMP Zaznacheni sposobi zastosuvannya VivaMP roblyat instrument korisnim yak pochatkivcyam OpenMP programistam tak i yih bilsh dosvidchenim kolegam Perevagi statichnogo analizu nad inshimi metodikami poshuku paralelnih pomilokInstrument VivaMP ye statichnim analizatorom kodu Ce oznachaye sho na vidminu vid dinamichnih analizatoriv ne potribno zapusk programi sho pereviryayetsya dlya viyavlennya pomilok i rezultat roboti statichnogo analizatora ne zalezhit vid seredovisha vikonannya Statichnij analiz dozvolyaye pereviriti kod ridko yakij oderzhuye upravlinnya abo vikonuyetsya v razi vidpracyuvannya ridkisnih pomilkovih situacij Vvazhayetsya sho verifikaciya paralelnih program metodom statichnogo analizu skrutna i maloefektivna v silu nemozhlivosti viyaviti pomilki sho vinikayut pri vzayemodiyi riznih chastin program Ale dlya tehnologiyi OpenMP statichnij analiz dlya viyavlennya pomilok v kodi mozhlivij i efektivnij Sprava v lokalnosti tehnologiyi OpenMP Paralelnij kod v programah yak pravilo buvaye zibranij v odnomu misci sho dozvolyaye vikonati detalnij statichnij analiz dlya znahodzhennya pomilokPrimitkiAndrej Karpov Testirovanie parallelnyh programm Arhiv originalu za 24 listopada 2016 Procitovano 23 listopada 2016 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Aleksej Kolosov Evgenij Ryzhkov Andrej Karpov 32 podvodnyh kamnya OpenMP pri programmirovanii na Si http www viva64 com ru a 0054 24 listopada 2016 u Wayback Machine DzherelaAleksej Kolosov Evgenij Ryzhkov Andrej Karpov 32 podvodnyh kamnya OpenMP pri programmirovanii na Si 24 listopada 2016 u Wayback Machine Andrej Karpov Testirovanie parallelnyh programm 24 listopada 2016 u Wayback Machine pvs studio Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi