Memperkirakan probabilitas kesalahan perangkat keras


13

Katakanlah saya menjalankan komputasi superkomputer pada 100k core selama 4 jam di http://www.nersc.gov/users/computational-systems/edison/configuration , bertukar sekitar 4 PB data melalui jaringan dan melakukan sekitar 4 TB I / HAI. Penghitungan semuanya bilangan bulat, sehingga hasilnya benar atau salah (tidak ada kesalahan angka menengah).

Dengan asumsi kode itu benar, saya ingin memperkirakan probabilitas bahwa perhitungannya salah karena kegagalan perangkat keras. Apa cara yang baik untuk melakukan ini? Apakah ada sumber yang bagus untuk angka yang diperlukan untuk membuat perkiraan seperti itu?


Saya membayangkan hasil CPU / ram benar-benar stabil dibandingkan dengan pertimbangan jaringan dan disk.
meawoppl

Jawaban:


5

Sudahkah Anda melihat berbagai laporan exascale yang telah keluar? Kegagalan yang sulit bukan masalah yang penting saat ini - tentu saja, itu terjadi, tetapi frekuensinya tidak cukup tinggi untuk menyebabkan kekhawatiran besar. Tetapi mereka diperkirakan cukup sering pada sistem exascale dengan atau lebih banyak kode yang perlu disiapkan kode untuk bereaksi dengan tepat. Saya percaya bahwa masalah ini telah dituangkan dalam laporan tentang peta jalan menuju exascale.HAI(108)

Ingatan saya adalah bahwa di antara berbagai mode kegagalan, bit tunggal membalik dalam memori atau pada core prosesor bukan masalah yang paling signifikan. Sebaliknya, itu seluruh node turun, misalnya karena kegagalan disk, kesalahan sistem operasi, dll. Karena itu desain exascale semua panggilan untuk pemeriksaan berkala kode ke dalam RAM flash, lebih disukai mentransmisikan data pos pemeriksaan off-node. Kode kemudian harus dapat memulai kembali dengan cepat dari keadaan yang disimpan sebelumnya jika sistem menemukan bahwa satu simpul telah hilang, mengganti simpul ini dengan simpul mulai-panas di tempat lain dalam sistem.


Kedengarannya persis seperti yang saya butuhkan. Apakah Anda memiliki contoh-contoh tertentu dalam pikiran?
Geoffrey Irving

1
Saya akan melihat apakah ada sesuatu di antara berbagai laporan DoE yang menarik bagi Anda. Saya berasumsi Anda juga tahu tentang exascale.org ? Seharusnya ada banyak bacaan di sana untuk Anda.
Wolfgang Bangerth

1
Geoff, laporan exascale definitif adalah oleh Peter Kogge, dan tersedia online . Lihatlah setiap kemunculan kata resiliency. Yang mengatakan, saya bisa mengarahkan Anda ke beberapa orang di NERSC yang mungkin memiliki informasi lebih spesifik tentang mesin itu.
Aron Ahmadia

@AronAhmadia: Terima kasih, dokumen itu terlihat hebat. Saya menerima jawaban ini karena harus mencakup lebih dari kelas kesalahan yang saya minati.
Geoffrey Irving

@ Wolfgang: Ini mengingatkan saya pada hari-hari perang dingin saya ketika rudal Minuteman diprogram dengan pos-pos pemeriksaan, sehingga jika flash neutron terjadi di dekatnya, menyebabkan shutdown prosesor seketika, itu dapat memulai kembali dari pos pemeriksaan terbaru. Jika mengambil pos pemeriksaan pada waktu yang tepat terbukti, itu disebut "restart-protected".
Mike Dunlavey

9

Saya kira, Anda mulai dengan mengumpulkan tingkat kesalahan komponen, seperti DRAM, seperti penelitian Google ini tentang DRAM Errors in the Wild: Studi Lapangan Skala Besar Mereka menemukan ~ 1% peluang untuk mendapatkan satu kesalahan yang tidak dapat diperbaiki per tahun.

Saya tidak yakin apakah itu yang Anda minati. Saya akan lebih tertarik pada kesalahan yang tidak terdeteksi. Kesalahan sedemikian sehingga metode pemeriksaan kesalahan yang khas tidak akan terdeteksi. Misalnya, ketika Anda mengirim paket melalui optik, mereka disertai dengan semacam CRC, yang memungkinkan untuk kemungkinan kecil kesalahan melintas.

PEMBARUAN: makalah ini Arsitektur untuk Deteksi dan Pemulihan Kesalahan Online dalam Prosesor Multicore berbicara tentang arsitektur multicore yang andal, tetapi juga membahas berbagai aspek keandalan sistem dan memiliki daftar pustaka


Studi yang bagus. Ini menegaskan banyak intuisi, tua, panas, sering digunakan, ram hampir penuh kurang dapat diandalkan. Saya agak terkejut tidak ada kegagalan khusus vendor atau arsitektur yang umumnya lebih buruk.
meawoppl

3

Apakah ada sumber yang bagus untuk angka yang diperlukan untuk membuat perkiraan seperti itu?

Anda dapat mencoba meminta admin dari cluster yang Anda hitung. Saya membayangkan sebagai bagian dari proses validasi mereka, mereka telah menghadapi masalah memperkirakan kemungkinan kesalahan perangkat keras.


Terima kasih! Jelas di belakang, tapi itu tidak terpikir olehku.
Geoffrey Irving

2

Kedengarannya epik. Jika tidak ada yang melakukan percobaan ini, Anda dapat mempertimbangkan menjalankan 100k core terpisah melakukan sesuatu seperti mengulangi input sha1 berulang-ulang, melihat berapa tingkat kesalahannya. (Tidak dapat diukur, saya curiga), dari sana melakukan hal yang sama, tetapi minta mereka berdagang hasil rantai hash sesering mungkin untuk mendapatkan tingkat kesalahan jaringan Anda. Ini saya bayangkan juga sangat kecil, tapi saya kira Anda bisa mendapatkan setidaknya beberapa menggunakan supercluster Anda selama beberapa jam :)

Pendekatan ini memastikan bahwa setiap perhitungan benar, karena hashing sangat sensitif terhadap swap bit tunggal, sedangkan bahkan perhitungan integer saja dapat menyembunyikan kesalahan di cabang, yaitu seluruh perhitungan tidak akan berbentuk elips pada setiap status memori berturut-turut.

Saya telah bekerja pada cara untuk memastikan bahwa kode telah dijalankan dengan benar oleh kluster eksternal yang motivasinya curang dengan mengirimkan hasil palsu. Solusi yang saya konvergensi adalah mengintegrasikan hash ke dalam perhitungan dengan beberapa frekuensi yang membuat curang lebih efisien daripada melakukan pekerjaan.


2
Sayangnya, kecil kemungkinan skema Anda untuk menambang bitcoin akan disetujui. :)
Geoffrey Irving

Tee hee hee. Ini bukti kerja saja. : P
meawoppl
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.