HDF5 ayrı ayrı python süreçlerine güvenilir bir şekilde yazılabilir ve onlardan okunabilir mi?


9

Zaman içinde canlı veri kaydetmek için bir komut dosyası yazıyorum, bu proje için tüm veri kümemi içeren tek bir HDF5 dosyasına. Python 3.6 ile çalışıyorum clickve veri toplamak için kullanarak bir komut satırı aracı oluşturmaya karar verdim .

Benim endişem veri toplama komut dosyası HDF5 dosyasına yazıyor ve henüz ML uygulaması aynı dosyadan veri okumaya çalışır ne olur?

HDF Grubu'nun HDF5 paralel I / O ile ilgili belgelerine bir göz attım , ancak bu benim için hiçbir şeyi netleştirmedi.

Yanıtlar:


10

HDF5 paralel G / Ç bu sorunu çözmez. Bu teknoloji, çarpışmadan kaçınmak için değil, öncelikle performans için tasarlanmıştır.

İstediğiniz şey SWMR (tek yazıcı / çoklu okuyucu) olarak bilinir :

Veri toplama ve bilgisayar modelleme sistemlerinin genellikle verileri yazılırken analiz etmesi ve görselleştirmesi gerekir. Örneğin, bir uygulamanın bir çalışmanın ortasında bazı temel parametrelerin değiştirilmesini, sensörlerin ayarlanmasını veya çalışmanın tamamen hurdaya çıkarılmasını öneren sonuçlar üretmesi olağandışı değildir.

Kullanıcıların bu tür sistemleri kontrol etmelerini sağlamak için SWMR (belirgin yüzücü) dediğimiz eşzamanlı bir okuma / yazma dosyası erişim modeli geliştiriyoruz. SWMR tek yazarlı / çoklu okuyucu kısaltmasıdır. SWMR işlevselliği, bir yazar işleminin dosyaya veri eklemesine izin verirken, birden fazla okuyucu işlemi dosyadan okunur.

SWMR ilk olarak 2016-03-30 tarihinde yayınlanan HDF5 sürüm 1.10.0'a dahil edildi

HDF5 Dosyalarına Eşzamanlı Erişim - Tek Yazarlı / Çoklu Okuyucu (SWMR)

Tek Yazar / Çoklu Okuyucu veya SWMR özelliği, kullanıcıların verileri yazarken aynı anda okumalarını sağlar. İşlemler ve dosya kilitleme arasında iletişim gerekmez. İşlemler, POSIX uyumlu ortak bir dosya sistemini paylaştıkları sürece aynı veya farklı platformlarda çalışabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.