Uygulama kontrol noktası belirleme - Application checkpointing

Kontrol noktası belirleme sağlayan bir tekniktir hata toleransı için bilgi işlem sistemleri. Temel olarak bir anlık görüntüyü kaydetmekten oluşur. uygulama durumudur, böylece uygulamalar bu noktadan başlayabilir. başarısızlık. Bu, arızaya meyilli bilgi işlem sistemlerinde yürütülen uzun süre çalışan uygulamalar için özellikle önemlidir.

Dağıtılmış sistemlerde kontrol noktası

İçinde dağıtılmış hesaplama ortamında, kontrol noktası belirleme, aksi takdirde uzun süre çalışan uygulamayı baştan yeniden başlatmaya zorlayacak hataları tolere etmeye yardımcı olan bir tekniktir. Kontrol işaretlemeyi uygulamanın en temel yolu, uygulamayı durdurmak, gerekli tüm verileri bellekten güvenilir depolamaya kopyalamaktır (ör. paralel dosya sistemi ) ve ardından yürütmeye devam edin.[1] Başarısızlık durumunda, uygulama yeniden başladığında sıfırdan başlamasına gerek yoktur. Bunun yerine, kararlı depolamadan en son durumu ("denetim noktası") okuyacak ve ondan çalıştıracaktır. Kontrol işaretlemenin dağıtılmış bilgi işlem sistemlerinde baskın G / Ç iş yükü olup olmadığı konusunda süregelen tartışmalar olsa da, kontrol noktasının başlıca G / Ç iş yüklerinden biri olduğu konusunda genel bir fikir birliği vardır.[2][3]

Dağıtık bilgi işlem sistemlerinde kontrol noktası belirleme için iki ana yaklaşım vardır: koordineli kontrol noktası belirleme ve koordinasyonsuz kontrol noktası belirleme. Koordineli kontrol noktası belirleme yaklaşımında, süreçler kontrol noktalarının tutarlı olmasını sağlamalıdır. Bu genellikle bir tür iki aşamalı tamamlama protokolü algoritması. Koordine edilmemiş kontrol noktasında, her bir süreç kendi durumunu bağımsız olarak kontrol eder. Süreçleri sabit zaman aralıklarında durumlarını kontrol etmeye zorlamanın küresel tutarlılığı sağlamak için yeterli olmadığı vurgulanmalıdır. Tutarlı bir durum oluşturma ihtiyacı (yani, eksik mesaj veya yinelenen mesaj olmaması), diğer süreçleri kontrol noktalarına geri dönmeye zorlayabilir ve bu da diğer işlemlerin daha da eski kontrol noktalarına geri dönmesine neden olabilir, bu da en uç durumda olabilir. Bulunan tek tutarlı durumun ilk durum olduğu anlamına gelir (sözde Domino etkisi ).[4][5]

Uygulamalar için uygulamalar

Kayıt Yeri

Orijinal ve şimdi en yaygın uygulama kontrol noktası belirleme yöntemlerinden biri, etkileşimli uygulamalardaki bir "kaydetme durumu" özelliğiydi; burada, uygulamanın kullanıcısı, tüm değişkenlerin ve diğer verilerin durumunu, kullandıkları sırada bir depolama ortamına kaydedebilir. ya çalışmaya devam edin ya da uygulamadan çıkın ve daha sonra uygulamayı yeniden başlatın ve kaydedilen durumu geri yükleyin. Bu, uygulamadaki bir "kaydet" komutu veya menü seçeneği aracılığıyla gerçekleştirildi. Çoğu durumda, kullanıcıya uygulamadan çıkarken kaydedilmemiş işleri olup olmadığını sormak standart bir uygulama haline geldi.

Bu tür bir işlevsellik, belirli bir işin tek seferde tamamlanamadığı uygulamalarda kullanılabilirlik açısından son derece önemli hale geldi (düzinelerce saat sürmesi beklenen bir video oyununu oynamak veya yüzlerce veya binlerce sayfaya varan bir kitap veya uzun bir belge yazmak gibi) ) veya bir elektronik tablodaki satırlar gibi bir belgeye veri girişi gibi işin uzun bir süre boyunca yapıldığı yer.

Kaydetme durumuyla ilgili sorun, bir programın operatörünün kaydetmeyi talep etmesini gerektirmesidir. Otomatikleştirilmiş veya toplu olarak işlenen iş yükleri dahil etkileşimli olmayan programlar için, bu tür uygulamaları kontrol etme becerisinin de otomatikleştirilmesi gerekiyordu.

Kontrol Noktası / Yeniden Başlatma

Toplu uygulamalar, her bir işlemin bir dosyadan bir kaydı birkaç farklı dosyaya karşı işleyebildiği on ila yüz binlerce işlemi işlemeye başladığında, uygulamanın bir noktada tüm işi sıfırdan yeniden çalıştırmaya gerek kalmadan yeniden başlatılabilir olması ihtiyacı zorunlu hale geldi. Böylece, bir dizi işlemin işlenmesinden sonra, uygulamanın durumunun bir "anlık görüntüsü" veya "kontrol noktası" alınabilen "kontrol noktası / yeniden başlatma" yeteneği doğdu. Uygulama bir sonraki kontrol noktasından önce başarısız olursa, ona kontrol noktası bilgileri ve işlem dosyasında bir işlemin başarıyla tamamlandığı son yer verilerek yeniden başlatılabilir. Uygulama bu noktada yeniden başlayabilir.

Kontrol noktası tespiti pahalı olma eğilimindedir, bu nedenle genellikle her kayıt için yapılmazdı, ancak bir kontrol noktasının maliyeti ile bir grup kaydı yeniden işlemek için gereken bilgisayar zamanı değeri arasında makul bir uzlaşmayla yapıldı. Bu nedenle, her bir kontrol noktası için işlenen kayıt sayısı, maliyet faktörlerine, uygulamanın göreceli karmaşıklığına ve uygulamayı başarıyla yeniden başlatmak için gereken kaynaklara bağlı olarak 25 ila 200 arasında değişebilir.

Hata Tolerans Arayüzü (FTI)

FTI, hesaplamalı bilim insanlarına ölçeklenebilir bir şekilde kontrol noktası / yeniden başlatma gerçekleştirmenin kolay bir yolunu sağlamayı amaçlayan bir kütüphanedir.[6] FTI, çeşitli düzeylerde güvenilirlik ve performans sağlamak için yerel depolamanın yanı sıra çoklu çoğaltma ve silme tekniklerinden yararlanır. FTI, verimliliği artırmak ve alan, zaman ve enerji israfını önlemek için kullanıcıların hangi verilerin korunması gerektiğini seçmelerine olanak tanıyan uygulama düzeyinde kontrol noktası sağlar. Doğrudan bir veri arabirimi sunar, böylece kullanıcıların dosyalar ve / veya dizin adlarıyla uğraşmasına gerek kalmaz. Tüm meta veriler, kullanıcı için şeffaf bir şekilde FTI tarafından yönetilir. İstenirse, kullanıcılar hata toleransı iş yükü ve bilimsel hesaplamayı üst üste getirmek için düğüm başına bir işlemi ayırabilir, böylece kontrol noktası sonrası görevler eşzamansız olarak yürütülür.

Berkeley Lab Kontrol Noktası / Yeniden Başlatma (BLCR)

Lawrence National Laboratories'deki Future Technologies Group, BLCR adı verilen kontrol noktası / yeniden başlatma için hibrit bir çekirdek / kullanıcı uygulaması geliştiriyor. Amaçları, uygulama kodunda değişiklik yapılmasına gerek kalmadan geniş bir uygulama yelpazesini kontrol eden sağlam, üretim kalitesi uygulaması sağlamaktır.[7] BLCR, MPI aracılığıyla iletişim kuran paralel uygulamaları kontrol etmeye ve SciDAC Scalable Systems Software ISIC tarafından üretilen yazılım paketi ile uyumluluğa odaklanır. Çalışması 4 ana alana bölünmüştür: Linux (CR) için Kontrol Noktası / Yeniden Başlatma, Kontrol Noktasına Göre MPI Kitaplıkları, Kontrol Noktasına Kaynak Yönetim Arayüzü / Yeniden Başlatma ve Süreç Yönetimi Arayüzlerinin Geliştirilmesi.

DMTCP

DMTCP (Dağıtılmış Çoklu İş Parçacıklı Kontrol İşaretleme), birçok makineye yayılan ve soketlerle bağlanan rastgele bir program grubunun durumunu şeffaf bir şekilde kontrol etmek için kullanılan bir araçtır.[8] Kullanıcının programını veya işletim sistemini değiştirmez. DMTCP tarafından desteklenen uygulamalar arasında MPI'yi aç, Python, Perl ve birçok Programlama dilleri ve kabuk komut dosyası dilleri. TightVNC kullanımıyla, uzantı kullanmadıkları sürece (örneğin, OpenGL veya video yok) X Window uygulamalarını kontrol edebilir ve yeniden başlatabilir. DMTCP tarafından desteklenen Linux özellikleri arasında açık dosya tanımlayıcıları, borular, soketler, sinyal işleyicileri, işlem kimliği ve iş parçacığı kimliği sanallaştırma (eski pids ve tids'in yeniden başlatıldığında çalışmaya devam etmesini sağlayın), ptys, fifos, işlem grubu kimlikleri, oturum kimlikleri, terminal öznitelikleri ve mmap / mprotect (mmap tabanlı paylaşılan bellek dahil). DMTCP, deneysel olarak InfiniBand için OFED API'yi destekler.[9]

İşbirliğine dayalı kontrol noktası belirleme

Bazı yeni protokoller, kontrol noktasının parçalarını yakındaki düğümlerde depolayarak işbirliğine dayalı kontrol noktası oluşturur.[10] Bu yararlıdır çünkü paralel bir dosya sistemine depolama maliyetini ortadan kaldırır (bu genellikle büyük ölçekli sistemler için bir darboğaz haline gelir) ve daha yakın depolama alanı kullanır. Bu, özellikle büyük ölçekli süper hesaplama kümelerinde kullanım bulmuştur. Buradaki zorluk, bir arızadan kurtarılırken kontrol noktasına ihtiyaç duyulduğunda, kontrol noktalarının parçalarını içeren yakındaki düğümlerin kullanılabilir olmasını sağlamaktır.

Liman işçisi

Liman işçisi ve temeldeki teknoloji bir kontrol noktası ve geri yükleme mekanizması içerir.[11]

CRIU

CRIU bir kullanıcı alanı denetim noktası kitaplığıdır.

Gömülü ve ASIC cihazları için uygulama

Mementos

Mementos, genel amaçlı görevleri, elektrik kesintileri gibi sık kesintilerin olduğu platformlar için kesintiye uğrayabilir programlara dönüştüren bir yazılım sistemidir. Bataryasız gömülü cihazlar için tasarlanmıştır. RFID etiketleri ve güvenen akıllı kartlar enerji toplamak ortam arka plan kaynaklarından. Mementos sık sık sistemdeki mevcut enerjiyi algılar ve devam eden hesaplamaya karşı yaklaşan güç kaybı nedeniyle programı kontrol edip etmemeye karar verir. Kontrol noktası belirleniyorsa, veriler bir uçucu olmayan bellek. Enerji yeterli hale geldiğinde yeniden başlatmak veriler uçucu olmayan bellekten geri alınır ve program kayıtlı durumdan devam eder. Mementos, MSP430 ailesinin mikrodenetleyiciler. Mementos'un adı Christopher Nolan 's Memento.[12]

Idetik

Idetic, yardımcı olan bir dizi otomatik araçtır. Uygulamaya Özel Entegre Devre (ASIC) geliştiricilerinin tasarımlarına otomatik olarak kontrol noktaları yerleştirmeleri. Hedefler üst düzey sentez araçları ve kontrol noktalarını ekler kayıt aktarım düzeyi (Verilog kodu). Bir dinamik program alçak havai noktaları bulma yaklaşımı durum makinesi tasarımın. Donanım düzeyinde kontrol noktası belirleme, bağımlı verilerin gönderilmesini içerdiğinden kayıtlar uçucu olmayan bir belleğe, en uygun noktaların depolanacak minimum kayıt sayısına sahip olması gerekir. Idetic konuşlandırılır ve enerji hasadı üzerinde değerlendirilir RFID etiketi cihaz.[13]

Ayrıca bakınız

Referanslar

  1. ^ Plank, J. S., Beck, M., Kingsley, G. ve Li, K. (1994). Libckpt: Unix altında şeffaf kontrol noktası. Bilgisayar Bilimleri Bölümü.
  2. ^ Wang, Teng; Snyder, Shane; Lockwood, Glenn; Carns, Philip; Wright, Nicholas; Byna, Suren (Eyl 2018). "IOMiner: G / Ç Günlüklerinden Bilgi Kazanmak için Büyük Ölçekli Analitik Çerçevesi". 2018 IEEE Uluslararası Küme Bilişim Konferansı (CLUSTER). IEEE. sayfa 466–476. doi:10.1109 / KÜMELENME.2018.00062. ISBN  978-1-5386-8319-4.
  3. ^ "İki liderlik sınıfı depolama kümesinin Karşılaştırmalı G / Ç iş yükü karakterizasyonu Günlükleri" (PDF). ACM. Kasım 2015.
  4. ^ Bouteiller, B., Lemarinier, P., Krawezik, K. ve Capello, F. (2003, Aralık). Hataya dayanıklı MPI için koordineli kontrol noktası ve mesaj günlüğü. In Cluster Computing, 2003. Proceedings. 2003 IEEE Uluslararası Konferansı (s. 242-250). IEEE.
  5. ^ Elnozahy, E.N., Alvisi, L., Wang, Y. M. ve Johnson, D. B. (2002). Mesaj geçirme sistemlerinde geri alma-kurtarma protokollerine ilişkin bir inceleme. ACM Computing Surveys, 34 (3), 375-408.
  6. ^ Bautista-Gomez, L., Tsuboi, S., Komatitsch, D., Cappello, F., Maruyama, N., & Matsuoka, S. (2011, Kasım). FTI: hibrit sistemler için yüksek performanslı hata toleransı arayüzü. 2011 Uluslararası Yüksek Performanslı Hesaplama, Ağ Oluşturma, Depolama ve Analiz Konferansı Bildirilerinde (s. 32). ACM.
  7. ^ Hargrove, P. H. ve Duell, J. C. (2006, Eylül). Linux kümeleri için Berkeley laboratuvar kontrol noktası / yeniden başlatma (blcr). Journal of Physics: Conference Series (Cilt 46, No. 1, s. 494). IOP Yayıncılık.
  8. ^ Ansel, J., Arya, K. ve Cooperman, G. (2009, Mayıs). DMTCP: Küme hesaplamaları ve masaüstü için şeffaf kontrol noktası. Parallel & Distributed Processing'de, 2009. IPDPS 2009. IEEE International Symposium on (sayfa 1-12). IEEE.
  9. ^ "GitHub - DMTCP / DMTCP: DMTCP: Dağıtılmış MultiThreaded CheckPointing". 2019-07-11.
  10. ^ Walters, J. P .; Chaudhary, V. (2009-07-01). "MPI Uygulamaları için Çoğaltma Tabanlı Hata Toleransı". Paralel ve Dağıtık Sistemlerde IEEE İşlemleri. 20 (7): 997–1010. CiteSeerX  10.1.1.921.6773. doi:10.1109 / TPDS.2008.172. ISSN  1045-9219.
  11. ^ "Docker - CRIU".
  12. ^ Benjamin Ransford, Jacob Sorber ve Kevin Fu. 2011. Mementos: RFID ölçekli cihazlarda uzun süreli hesaplama için sistem desteği. ACM SIGPLAN Bildirimleri 47, 4 (Mart 2011), 159-170. DOI = 10.1145 / 2248487.1950386 http://doi.acm.org/10.1145/2248487.1950386
  13. ^ Mirhoseini, A .; Songhori, E.M .; Koushanfar, F., "Idetic: Geçici olarak güçlendirilmiş ASIC'lerde uzun hesaplamalar sağlamak için üst düzey bir sentez yaklaşımı," Yaygın Hesaplama ve İletişim (PerCom), 2013 IEEE Uluslararası Konferansı, cilt, no., S. 216,224, 18 –22 Mart 2013 URL'si: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6526735&isnumber=6526701

daha fazla okuma

  • Yibei Ling, Jie Mi, Xiaola Lin: Optimal Kontrol Noktası Yerleştirmeye Varyasyonel Hesap Yaklaşımı. IEEE Trans. Bilgisayar 50 (7): 699-708 (2001)
  • YENİDEN. Ahmed, R.C. Frazier ve P.N. Marinos, "Paylaşılan Bellek Çok İşlemcili Sistemler için Önbellek Destekli Geri Alma Hatası Kurtarma (CARER) Algoritmaları", IEEE 20th International Symposium on Fault-Tolerant Computing (FTCS-20), Newcastle upon Tyne, İngiltere, 26–28 Haziran 1990, s. 82–88.

Dış bağlantılar