Контрольні точки програми

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Контрольні точки це технологія для збільшення відмовостійкості для комп'ютерних систем. Вона в основному складається зі часових знімків стану програми, тож вона може перезапустити роботу з цієї точки у разі відмови. Це особливо важливо для програм які працюють тривалий час тому є вразливими.

Контрольні точки у розподілених системах[ред. | ред. код]

У розподілених обчисленнях, контрольні точки це технологія, яка допомагає збільшити відмовостійкість, що б в іншому випадку призвело до перезапуску програми спочатку. Найпростішим способом створення контрольних точок, це зупинка програми, копіювання всіх важливих даних до надійного сховища (так звані паралельні файлові системи), а потім продовжити виконання з місця зупинки[1]. Реалізація контрольних точок повинна зберегти цілісність системи. Існує два основних підходи до контрольних точок в цих системах: скоординовані контрольні точки та неузгоджені контрольні точки. У скоординованому підході реалізації контрольних точок процеси повинні забезпечити, щоб їхні контрольно-пропускні пункти відповідали один одному. Це зазвичай досягається за рахунок деякого виду двохфазової фіксації алгоритму протоколу. У неузгоджених контрольних точках кожен процес контрольної точки має свій незалежний стан. Необхідність створення узгодженого стану не має змушувати інші процеси відкочувати їх контрольні точки, бо це в свою чергу може призвести до процесів відкочування попередніх контрольних точок, що в кінцевому результаті призведе до повернення програми в початковий стан (так званий ефект доміно).[2][3]

Впровадження для паралельних та дистрибутивних додатків[ред. | ред. код]

Стійкі до помилок інтерфейси (СПІ)[ред. | ред. код]

Стійкі до помилок інтерфейс - це бібліотека, яка забезпечує спеціалістів з теорії обчислення легким способом перевести контрольну точку/перезапуск в масштабовані моди[4]. СПІ використовують локальне сховище плюс кілька реплікації і методи підчищення, щоб забезпечити кілька рівнів надійності і продуктивності. СПІ надає доступ до контрольних точок на рівні додатків, що дозволяє користувачам вибирати, які дані повинні бути захищені, з метою підвищення ефективності та уникнення втрати часу і ресурсів. Він пропонує прямий інтерфейс даних, так що користувачі не повинні мати справу з файлами і / або іменем каталогів. Всі метадані керуються СПІ в прозорій формі для користувача. При бажанні, користувач може виділити один процес для кожного вузла до насування навантаження допуску та наукових обчислень, так що після контрольної точки завдання виконуються асинхронно.

Контрольні точки/Перезапуск лабораторії Бекерлі (КТПЛБ)[ред. | ред. код]

Група Інноваційних Технологій у Національної лабораторії Лоуренса розробляють гібридні реалізації інтерфейсу ядра/КПП/перезавантаження, що має назву КТПЛБ. Їх мета-забезпечити надійну, якісну реалізації, що забезпечує широке коло застосувань контрольних точок, не вимагаючи змін в коді програми.[5] BLCR фокусується на контрольних точах паралельних додатків, які обмінюються даними через MPI і на сумісність з програмним пакетом вироблених SciDAC Масштабованих систем програмного забезпечення МСПЗ. Його робота розбита на 4 основних напрямках: контрольно-пропускний пункт/перезавантажити для Linux (КР), Контрольні точки бібліотек MPI, Управління ресурсами Інтерфейсу КПП/перезапуск і розвиток процесу управління Інтерфейси.

РБПКТ[ред. | ред. код]

РБПКТ (розподілені багатопотокові контрольні точки) - це інструмент для прозорого визначення контрольних точок стану довільної програми у багатьох машинах, що з'єднані мережею[6]. Він не змінюється програмою користувача або операційною системою. Серед додатків, підтримуваних РБПКТ не відкрити МПІ, Python, Perl багато інших мови програмування і мови сценаріїв оболонки. При використанні, він може також створювати контрольні точки і перезавантажувати вікна програми, поки вони не користуються розширеннями (наприклад, OpenGL або відео). Серед функцій Linux підтримується РБПКТ відкриті файлові дескриптори,  сокети, обробники сигналів, ідентифікатор процесу і ідентифікатор потоку віртуалізації, порти, процеси, ідентифікатор групи, ідентифікатор сесії, термінал атрибутів. РБПКТ підтримує OFED API для технології InfiniBand на експериментальній основі.[7]

Реалізація для вбудованих і пристроїв ASIC[ред. | ред. код]

Нагадування[ред. | ред. код]

Сувеніри-це система програмного забезпечення, що перетворює завдання загального призначення на дискретних програмах для платформ з частих відключень. Вона була розроблена для безбатарейних вбудованих пристроях, таких як RFID-мітки і смарт-карти, які покладаються на збір енергії з навколишнього фону. Нагадування часто визначає доступну енергію в системі, і вирішує коли потрібно створювати контрольну точку або продовжити обчислення. У разі контрольні точки, дані зберігаються в енергонезалежній пам'яті. Коли енергії стане достатньо для перезавантаження, дані будуть витягнуті з пам'яті, і програма Розпочне роботу з збереженого стану. Пам'ять була реалізована на сімействі мікроконтролерів фірми MSP430. Нагадування названі в честь фільму Крістофера Нолана Мементо.[8]

Idetic[ред. | ред. код]

Idetic являє собою набір автоматичних інструментів, які допомагають розробникам спеціалізованих інтегральних схеми (ASIC) в автоматичному розміщення постів в їх конструкції. Його завдання полягає в високому рівні синтезу інструментів і додає контрольні точки на рівні реєстра передачі. Він використовує підхід динамічного програмування для виявлення низьких накладних очок в скінченному автоматі конструкції. Оскільки контрольні точки в апаратному рівні передбачають відправку даних залежних регістрів в енергонезалежній пам'яті, оптимальним точкам необхідна мінімальна кількість регістрів для зберігання. Idetic працює з та оцінює енергію RFID мітки пристрою.[9]

См. також[ред. | ред. код]

  • Зображення процесу

Примітки[ред. | ред. код]

  1. Plank, J. S., Beck, M., Kingsley, G., & Li, K. (1994).
  2. Bouteiller, B., Lemarinier, P., Krawezik, K., & Capello, F. (2003, December).
  3. Elnozahy, E. N., Alvisi, L., Wang, Y. M., & Johnson, D. B. (2002).
  4. Bautista-Gomez, L., Tsuboi, S., Komatitsch, D., Cappello, F., Maruyama, N., & Matsuoka, S. (2011, November).
  5. Hargrove, P. H., & Duell, J. C. (2006, September).
  6. Ansel, J., Arya, K., & Cooperman, G. (2009, May).
  7. https://github.com/dmtcp/dmtcp/blob/master/contrib/infiniband/README
  8. Benjamin Ransford, Jacob Sorber, and Kevin Fu. 2011.
  9. Mirhoseini, A.; Songhori, E.M.; Koushanfar, F., "Idetic: A high-level synthesis approach for enabling long computations on transiently-powered ASICs," Pervasive Computing and Communications (PerCom), 2013 IEEE International Conference on , vol., no., pp.216,224, 18–22 March 2013 URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6526735&isnumber=6526701