Bagaimana cara menangani terlalu banyak data?

14

Simulasi dinamika plasma kami sering menghasilkan terlalu banyak informasi. Selama simulasi, kami merekam berbagai properti fisik pada kisi (x, y, z, t) yang sebesar (8192x1024x1024x1500), untuk setidaknya 10 properti. Informasi ini diproses setelah simulasi selesai. Dengan itu kita

  1. membuat film properti,
  2. melakukan analisis Fourier,
  3. menghitung properti rata-rata.

Pembuangan informasi sebanyak mungkin ini bekerja dengan baik ketika kami mempelajari sistem yang lebih kecil. Ini memberi kami fleksibilitas untuk berinteraksi dengan hasil dan memutuskan nanti apa yang ingin kami lakukan dengannya. Itu juga memungkinkan kami untuk membagikan sumber daya komputasi kami (waktu CPU) untuk hanya menjalankan simulasi.

Kami telah memulai proses melakukan analisis Fourier dengan cepat, dan memfilter hanya untuk rentang skala panjang tertentu. Untuk alasan numerik, kita terkadang perlu menyelesaikan skala panjang yang lebih kecil dari yang sebenarnya kita minati, jadi dalam kasus tersebut, filter ini sangat membantu. Kami juga mengeksplorasi berbagai pustaka IO paralel, misalnya opsi I / O Paralel, khususnya HDF5 paralel .

Strategi apa yang tersedia untuk memaksimalkan efisiensi pemrosesan data?

Apakah ada manfaat untuk melakukan semua analisis (tidak termasuk pemrosesan pasca, misalnya film dan plot) sambil jalan?

Saya bisa membayangkan masalah ini muncul di bidang penelitian lain. Misalnya, Anda mungkin memiliki simulasi dinamika molekuler yang perlu berevolusi untuk waktu yang lama, tetapi Anda tertarik pada momen singkat ketika sesuatu yang menarik sedang terjadi. Atau dalam CFD, pengembangan waktu awal mungkin lambat, tetapi begitu turbulensi terjadi, Anda mungkin memerlukan resolusi waktu yang lebih tinggi untuk memantau dinamika.

Apakah ada contoh pengumpulan hasil canggih yang tersedia secara bebas dari simulasi?

Yann
sumber
Ini mungkin tampak seperti pertanyaan luas. Jika Anda merasa seperti ini, silakan berikan saran tentang bagaimana saya bisa lebih spesifik.
Yann
1
Lihat juga bagaimana beberapa kelompok eksperimental menangani masalah ini. Fisika energi tinggi (al a CERN) dan astrofisika dapat memiliki skala data yang lebih besar yang harus disimpan (atau bahkan difilter sebelum disimpan karena data masuk lebih cepat daripada yang dapat ditulis ke penyimpanan mana pun), didistribusikan, dan dianalisis.
Brian Diggs

Jawaban:

10

Saya pikir Anda mungkin harus membagi output Anda agar sesuai dengan target Anda:

  1. untuk film properti, Anda mungkin tidak memerlukan resolusi spasial penuh dan semua variabel. Pilih dengan hati-hati apa yang ingin Anda tampilkan dan pikirkan tentang resolusi akhir dari film yang akan Anda tampilkan, mungkin tidak akan memiliki 8 miliar piksel.
  2. Untuk analisis Fourier (atau hal-hal seperti POD), jika bersifat temporal, Anda mungkin dapat mengambil sampel beberapa ratus poin yang dipilih dengan bijak di domain Anda. Jika spasial, Anda mungkin hanya perlu beberapa snapshot dan bukan 1500. Dan lagi, tidak semua properti.
  3. Untuk rata-rata waktu, Anda bisa terus menambahkan ke bidang yang sama dan tidak perlu khawatir tentang dimensi waktu, bukan? Rata-rata spasial menyakitkan, terutama jika Anda ingin melihat evolusinya dari waktu ke waktu. Tetapi lebih banyak pemrosesan online sebelum membuang data dapat mengurangi ukurannya ...

Ini berarti cukup banyak pekerjaan untuk memiliki keluaran khusus alih-alih yang umum tapi ini harus membantu menjaga biaya dan ukuran. Semoga ini membantu !

Satu hal lagi yang ingin saya tambahkan, secara umum, resolusi penuh dari data hanya diperlukan untuk me-restart file, yaitu file untuk memulai kembali simulasi Anda. Anda tidak perlu banyak dari ini untuk simulasi yang diberikan (katakanlah 100, sehingga jika sesuatu terjadi antara 2 restart Anda kehilangan paling banyak 1% dari perhitungan Anda), sedangkan Anda mungkin ingin meningkatkan frekuensi output untuk Anda film. Dan Anda dapat melakukannya hanya pada 1/64 resolusi misalnya (1 setiap 4 poin di setiap arah).

FrenchKheldar
sumber
Mengapa rata-rata spasial menyakitkan? Lakukan saja dengan cepat dan tulis hasilnya, yang seharusnya kecil.
David Ketcheson
@DavidKetcheson Rata-rata spasial menyakitkan karena memerlukan banyak komunikasi dan berpotensi dipengaruhi oleh topologi domain Anda, bukan? Tentu jika Anda memiliki kisi ortogonal murni yang disejajarkan dengan kerangka referensi Anda, itu tidak terlalu buruk, tetapi Anda masih harus melakukan beberapa kombinasi perhitungan dan MPI_REDUCE yang cerdas karena dengan kisi sebesar itu, Anda tidak bisa hanya melakukan ALL_REDUCE pada 1 Prosesor saya akan berpikir ...
FrenchKheldar
1
Oke, sekarang saya mengerti komentar Anda. Tetapi komunikasi biasanya tidak terlalu buruk, karena Anda dapat rata-rata setiap proses secara lokal dan kemudian hanya mengurangi satu float per proses. Dalam pengalaman saya (pada inti 65K BlueGene / P), biaya ini sepele, terutama dibandingkan dengan biaya I / O. Faktanya, kami melakukan ALL_REDUCE pada seluruh 65K core pada setiap langkah waktu dan sangat cepat.
David Ketcheson
@ DavidKetcheson Sebenarnya saya sekarang berpikir saya salah mengerti maksud Anda juga, dan saya juga terlalu melebih-lebihkan biaya pengurangan data. Apa yang ada dalam pikiran saya adalah sesuatu seperti rata-rata spanwise / azimuthal di mana Anda harus menyimpan / menampilkan data 2D lengkap yang mungkin atau mungkin tidak berada pada grid yang sama dengan grid komputasi. Tapi Anda benar, biaya sebenarnya MPI_ALL_REDUCE bukan masalah itu sendiri.
FrenchKheldar
8

Saya pikir master saat ini dari seni ini adalah eksperimen fisika partikel besar (saya paling akrab dengan CDF dan D0 karena saya sudah tua dan bekerja di University of Chicago). Mereka memiliki pemicu perangkat keras yang membuang petabyte (atau lebih) setahun. Namun, ini adalah keseluruhan subjek kuantisasi / diskritisasi, atau "membuang hanya apa yang tidak Anda butuhkan". Saya tidak yakin Anda bisa memberikan jawaban yang masuk akal secara umum. Akan lebih baik untuk mempersempit masalah menjadi sesuatu seperti, "Saya memiliki simulasi PDE diskrit dengan cara berikut dan ingin secara efisien downsample".

Matt Knepley
sumber
3

Peter LePage cukup terkenal di kalangan kisi-QCD karena menyarankan metode di mana kisi-kisi besar yang tidak layak dapat dikurangi dengan menemukan dan menerapkan solusi analitik rentang pendek yang baik.

Ini kira-kira sama dengan memperhatikan bahwa satu set splines yang dipilih dengan baik dapat memungkinkan integrasi yang akurat dengan simpul yang lebih sedikit daripada metode trapesium (kecuali bahwa dalam kasus Anda, Anda bisa memanfaatkannya lebih dari empat dimensi sekaligus).

Hasilnya adalah Anda menukar ukuran mentah kumpulan data dengan perhitungan yang lebih banyak per node - langkah, tetapi keluar pada akhirnya karena dimensi tinggi dari masalah Anda.

Saya bukan subjek yang saya kenal cukup baik untuk memberikan petunjuk yang layak, tetapi telah berhasil di beberapa bidang di masa lalu.

dmckee --- mantan kucing moderator
sumber
3

Pertanyaannya agak luas, jadi saya akan memberikan jawaban yang samar-samar yang menunjukkan kemungkinan teknik dalam kasus tersebut.

1) Pemrosesan langsung, yang sudah Anda kerjakan. Salah satu cara untuk melakukan pemrosesan sambil jalan namun memisahkannya dari langkah penghasil data adalah dengan menghasilkan file keluaran siklik yang selalu berisi langkah-langkah N terakhir, dan menjalankan analisis dalam proses terpisah. Jelas Anda harus menyinkronkan keduanya untuk mencegah kondisi balapan.

2) Memilih data yang disimpan lebih hati-hati. Sayangnya, ini sangat spesifik untuk situasi tertentu.

3) Kompres data Anda sebelum menyimpannya, atau gunakan perpustakaan penyimpanan dengan opsi kompresi terintegrasi, seperti HDF5.

4) Simpan pos-pos pemeriksaan biasa, bukan output penuh. Jika Anda menyimpan pos pemeriksaan penuh setiap langkah N, yaitu cukup data untuk memulai kembali simulasi dari sana, Anda dapat merekonstruksi data yang hilang dengan cara yang sangat paralel jika dan bila perlu. Perhatikan bahwa dalam kasus metode Monte-Carlo, pos pemeriksaan harus menyertakan keadaan generator nomor acak. Anda sebenarnya dapat mempertimbangkan ini sebagai teknik kompresi yang sangat spesifik untuk aplikasi.

khinsen
sumber