Projeleriniz için GPU · KYC'siz kripto ödeme Nasıl kiralanır
Türkçe
Konsolu aç
Uygulamalı rehber / KERNODECK

Tamamlanan bir süreç henüz kabul edilmiş bir sonuç değildir.

Uzun bir işlemden önce girdilerini, hedefini, ilerleme olaylarını ve başarı ölçütünü belirleyin. Uzak bir kabuğunuz varsa, bağlantı oturumunu hesaplama sürecinden ayırın. Sonunda önce dönüş kodunu, ardından sonuçların kendisini inceleyin: hatasız bir komut ne tüm verilerin işlendiğini ne de çıktıların kullanılabilir olduğunu kanıtlar.

6 dk okuma · Geliştiriciler için rehber

1. Ekranın karıştırdığı dört durumu ayırt edin

Açık bir bağlantı yalnızca makineyle hâlâ iletişim kurabildiğinizi kanıtlar. Görünür bir terminal, hesaplaması çoktan bitmiş bir kabuğu barındırıyor olabilir. Tersine, bağlantıyı kaybetmek sürecin durduğu sonucuna varmanızı sağlamaz. Öyleyse önce çalıştırmaya ve izlerini bulacağınız yere bir ad verin.

Sürecin varlığını, işleyiş ilerlemesini ve sonucun onaylanmasını ayrı ayrı izleyin. Bir günlükteki satır sayısı başarılı verilerin sayacı değildir: bir program aynı uyarıyı tekrarlayabilir. Kısmi bir çıktı okunabilir olduğu hâlde eksik olabilir.

Bu yöntem, gerekli erişim araçlarını alıp doğruladığınızı varsayar. Belirli bir erişim protokolü veya dosyaların otomatik olarak saklanmasını vaat etmez. Kullanılabilir araçlar ve hedefler, fiilen sağlanan ortamda kontrol edilmelidir.

Tüm sütunları görmek için tabloyu kaydırın.
Her gözlem farklı bir soruyu yanıtlar.
GözlemNe gösterdiğiNeyi kanıtlamadığı
Etkin bağlantıKanal yanıt veriyor.Hesaplama ilerliyor.
Süreç mevcutBir çalıştırma hâlâ var.Doğru öğeleri işliyor.
Onaylanan sayaç artıyorÖngörülen birimler tamamlandı.Tüm derlem tamamlandı.
Dönüş kodu sıfıra eşitProgram normal bir sonlanma bildiriyor.Sonuç sözleşmenize uyuyor.
Kontrollü ve alınmış çıktılarSeçilen ölçütler doğrulandı.Bu ölçütlerin ötesinde bir kalite.

2. Ayırmadan önce tanımlanabilir bir çalıştırma hazırlayın

Verileri, etkin yapılandırmayı ve uygulamanın kısa bir ilk geçişini kontrol edin. GPU tanılaması başka bir soruyu yanıtlar: arka uç bir hesaplama yürütebiliyor mu? Derlemin tam olarak yüklenmesini veya programınızın mantığını doğrulamaz. Bu kontrolleri önemli bir süreyi başlatmadan önce yapın.

Bir çalıştırma tanımlayıcısı ve yeni bir klasör seçin. Sırrı içermeyen komutu, kodun sürümünü, girdilerin kimliğini ve beklenen sonucu saklayın. Günlüklerin nereye yazılacağını ve dosyaların nereden alınacağını planlayın. İki başlatma aynı anda aynı klasöre yazmamalıdır.

Bağımsız bölümlere ayrılmış bir iş için bir bölümün ne zaman tamamlandığına karar verin: hesaplama bitti, dosya kapatıldı, içerik kontrol edildi ve durum kaydedildi. Yazılmakta olan bir dosya, kabul edilmiş bir sonuçla aynı anlama gelmemelidir. Başlamadan önce gerçekten kullanılabilir alanı da doğrulayın.

3. Bağlam izin verdiğinde terminali bulunabilir tutun

Ortam bir Unix kabuğu ve tmux sunuyorsa, bu çoklayıcı bir terminali ayırıp yeniden bağlandıktan sonra geri bulmanızı sağlar. Bu akışı bağlantı istemcisinin kaybına karşı korur; makinenin yeniden başlatılması veya sürecin yok edilmesi durumunda kurtarma mekanizması değildir.

Aşağıdaki komutlar eğitim amaçlıdır ve çalıştırılmaz. Bash, tmux ve gösterilen seçeneklerle kendi traitement.py programınızı varsayar; bu dosya sağlanan bir kaynak değildir. Önce kısa komutunu doğrulayın ve iki hesaplamayı karıştırmamak için farklı bir oturum adı kullanın.

Oturumu oluşturun, ardından ikinci bloğu içinde başlatın. Klasör oluşturma, zaten varsa başarısız olur; bu da günlüklerinin sessizce yeniden kullanılmasını önler. Kabuk yazma adımına ulaşırsa dönüş kodu korunur; ani bir durma bu dosyanın oluşturulmasını engelleyebilir. Dolayısıyla kodun yokluğu örtük bir başarı değildir.

Varsayılan kısayollarla Ctrl-b ardından d ile ayırın. Yeniden bağlandıktan sonra oturumları listeleyin ve doğru olanı yeniden bağlayın. Program bitmiş olsa bile kabuk görünür kalabilir: günlüğe ve kaydedilen koda bakın. Eski terminaliniz kayboldu diye hemen ikinci bir kopya başlatmayın.

Oturum oluşturma — eğitim komutları
tmux new -s campagne-a
Oturum içinde — uyarlanacak örnek, çalıştırılmadı
mkdir -p runs
mkdir runs/campagne-a && (
  code_retour=0
  python -u traitement.py --config config.toml --output runs/campagne-a \
    > runs/campagne-a/execution.log 2>&1 || code_retour=$?
  printf '%s\n' "$code_retour" > runs/campagne-a/exit-code.txt
  exit "$code_retour"
)
Yeniden bağlandıktan sonra — oturumu geri bulma
tmux ls
tmux attach -t campagne-a

4. Yalnızca etkinliği değil, kabul edilen işi sayma

Python -u seçeneği, standart ve hata çıkışlarının arabelleğe alınmasını kaldırır. Yayılan mesajları görmeye yardımcı olur, ancak uygulamada ilerleme olayları oluşturmaz. Bir kitaplık veya sessiz bir adım yine de ayrı bir gözlem gerektirebilir.

Anlaşılır aşamalar tanımlayın: okuma, hazırlık, hesaplama, yazma, doğrulama. Birimi sabit kalan bir sayaç ve bilindiğinde bir toplam ekleyin. Kabul edilen bölümleri sayıyorsanız, günlüğün ortasında adını değiştirmeden okunan satır sayacına geçmeyin.

Aşağıdaki eğitim örneği, her biri beş yüz öğeden oluşan sekiz bölümü, yani dört bin öğeyi ele alır. Gösterilen anda yalnızca beş bölüm kabul edilmiştir. Altıncısı kısmi olup toplamı şişirmemelidir. Sayılar bir sayma kuralını gösterir; hiçbir Kernodeck çalıştırmasını tanımlamaz.

Tüm sütunları görmek için tabloyu kaydırın.
Çalıştırılmayan eğitim anlık görüntüsü: sekiz bölümden beşi kabul edildi.
BölümlerDurumKabul edilmiş sayılan öğelerKarar
1 ila 5Doğrulandı2 500Kimliklerini ve sonuçlarını koru.
6Kısmi yazma0Bu bölümü tamamlandı diye bildirme.
7 ve 8İşlenecek0Çalışma listesinde kal.
TamamıEksik4.000 üzerinden 2.500Nihai klasörü kabul etme.

5. Bir sessizliği veya kesintiyi yineleme oluşturmadan inceleme

Hiçbir sayaç ilerlemediğinde, bilinen son aşamayı ve tamamlanan son birimini belirleyin. Sürecin var olup olmadığını, bir hata mesajının görünüp görünmediğini ve hedefin hâlâ kullanılabilir olup olmadığını kontrol edin. Yavaş bir model başlangıcı ile bloke olmuş bir döngü aynı hareketsiz ekranı üretebilir; sonraki kontrolü bağlam belirler.

Uygulamanızda istemli durdurmayı hazırlayın: durdurma isteği, güvenli bir birimin bitişi, durum kaydı, ardından çıkış. Sinyaller ve kesintiler sisteme bağlıdır. Python SIGKILL'i yakalayamaz ve bir Python işleyicisi, uzun bir yerel çağrının bitmesini bekleyebilir. Dolayısıyla kapanışta alınan bir yedek, düzenli yedeklerin yerini tutmaz.

Bir bağlantı kaybından sonra önce mevcut oturumu ve çalıştırmayı geri bulun. Onaylanmış bir durdurmadan sonra neyin tam, neyin kısmi olduğunu belirleyin. Bir eğitim için sürdürme, ayrıntılı model ve optimizasyon durumlarını gerektirir; ilgili kılavuz bu durumu yeni bir süreçte doğrular.

6. Yalnızca sözleşmenin izin verdiğini sürdürme

Örneğimizde, bölüm bazlı devam etme, her bölümün bağımsız olduğunu ve girdi, kod ve yapılandırmanın aynı kaldığını varsayar. Onaylanmış beş sonucu koruyup altıncıyı tamamen yeniden hesaplayarak sonraki ikisine devam edebilir. Bu varsayımlar geçerli değilse, bu kısayol haklı görülemez.

Yeni satırları kısmi dosyaya öylece eklemeyin. Yinelenen kayıtlar oluşturma veya iki yapılandırmayı karıştırma riskiyle karşılaşırsınız. Tam, eksik ve mevcut olmayan durumları ayırt etmek için beklenen tanımlayıcıları kullanın. Eski durumu bir açıklama öğesi olarak, yeni deneme için ayrı bir hedefle saklayın.

Büyük bir işlem için bu stratejiye güvenmeden önce, kontrollü bir kesintiyle stratejinizi doğrulayın. Ölçüt, ilerleme mesajlarının aynılığı değil, sözleşmenize göre faydalı çıktıların denkliğidir. Eğitimler, dış etkileri olan hesaplamalar ve dağıtılmış işlemler, bu bağımsız bölümler örneğinden farklı güvenceler gerektirir.

7. İşi kapatmadan önce sonucu kabul etme ve geri alma

Önce dönüş koduyla başlayın, ardından çıktıları girdi bildirimiyle karşılaştırın. Örneğimiz için, eksik veya yinelenen olmaksızın beklenen sekiz bölümü ve dört bin tanımlayıcıyı bekleyin. Biçimi, boyutları ve ilgili değerleri kontrol edin; bir dosyayı okumak, doğru sonucu içerdiğini kanıtlamaz.

Kabul edilen çıktıları, izin verilen yapılandırmayı, sürümleri ve kontrol raporunu alın. Boyutları ve gerekirse kaynak ile kopya arasındaki özet değerleri karşılaştırın. Aynı özet değer, baytların aktarımını doğrulamaya yardımcı olur; ne modelin kalitesini ne de dosyanın meşru kaynağını kanıtlar.

Son olarak, bir sonucu saklama hedefinden, onu kullanacak araçla açın. Bu adımı hesaplama erişiminizin sona ermesinden önce planlayın. İş, kontrol edilen sonuç geri alınabilir ve yorumlanabilir olduğunda tamamlanır; son yüzde yüze ulaştığında değil.

Sorularınız

Uzak bir bağlantıyı kapatmak hesaplamayı her zaman durdurur mu?

Hayır: bu, sürecin nasıl başlatıldığına bağlıdır. Bir tmux oturumu, bu araç mevcutsa, onu istemci terminalinden ayırmaya olanak tanır. Yeniden bağlandıktan sonra, yeni bir tane başlatmadan önce mevcut çalıştırmayı arayın.

Sıfıra eşit bir dönüş kodu sonucumu doğrulamak için yeterli mi?

Hayır. Programın normal bir sonlanma bildirdiğini gösterir. Ayrıca tanımlayıcıların eksiksizliğini, biçimi ve öngörülen iş ölçütlerini kontrol edin. Bir program yanlış bir alt kümeyi işledikten sonra normal şekilde sonlanabilir.

Hareketsiz bir günlük, GPU'nun kilitlendiği anlamına mı gelir?

Mutlaka değil. Program veri hazırlıyor, bir yazmayı bekliyor veya ilerleme bildirmiyor olabilir. Durdurmaya karar vermeden önce aşamayı ve süreç durumunu belirleyin. Açık bir iş sayacı, yalnızca mesajların varlığından daha faydalıdır.