Bagaimana saya harus belajar membuat dan memprogram sistem HPC?

16

Saya di bidang yang tidak selalu melakukan banyak pekerjaan HPC, dan ketika itu benar-benar terjadi, sering kali ini merupakan hasil dari peneliti dari bidang lain yang mengeksplorasi aplikasi baru dengan metode dan sejenisnya. Terutama apa artinya ini adalah bahwa hal itu tidak pernah benar-benar diperkenalkan dalam program studi, atau dibesarkan banyak di lokakarya, seminar dan sejenisnya - adalah mungkin untuk menjalani seluruh karir seseorang tanpa membutuhkannya.

Namun pada saat yang sama, banyak pekerjaan yang saya lakukan dapat mengambil manfaat dari penggunaan sumber daya HPC yang lebih baik bagi saya - kebanyakan dalam bentuk simulasi Monte Carlo yang paralel dengan baik.

Masalah saya adalah menemukan sumber daya untuk belajar bagaimana cara menggunakan cluster, MPI, dll. Dan memisahkan yang baik dari yang buruk, mengingat saya tidak tahu banyak.

Adakah saran untuk buku tentang pemrograman jenis sistem ini, atau tentang pengaturan dan menjalankan pengaturan HPC yang sangat sederhana milik sendiri?

Fomite
sumber
Haruskah ini memiliki sesuatu seperti tag "daftar besar"?
shuhalo
@ Martin: tidak. Ini harus memiliki jawaban dari orang-orang yang pernah benar-benar melakukan ini dan tahu apa yang mereka bicarakan, bukan daftar raksasa dari segala sesuatu yang mungkin dibayangkan terkait. Dimodifikasi judul untuk mencerminkan ini.
Shog9

Jawaban:

13

Lihat Universitas HPC . Secara khusus, bagian sumber daya , yang mencakup hal-hal seperti

dan banyak lagi.

Ada banyak program pendidikan tinggi yang termasuk kursus HPC . Sebagai contoh, program saya sendiri menyertakan kursus di

  • Komputasi kinerja tinggi (2 semester)
  • Paradigma pemrograman paralel
  • Rekayasa perangkat lunak ilmiah
  • Pemrograman GPU dan GPGPU

serta berbagai kursus dalam komputasi ilmiah dan analisis numerik.

David Ketcheson
sumber
4

Pengalaman pribadi saya adalah bahwa HPC membutuhkan serangkaian keterampilan yang sangat luas sehingga sangat sulit untuk melakukannya hanya dalam satu buku, resep, kursus universitas. Pertimbangkan bahwa HPC bukan tentang pemrograman mesin-mesin besar atau membangun sebuah cluster, tetapi lebih pada mengatasi masalah sains besar di ujung komputasi yang berdarah.

Saya tidak yakin semua orang akan setuju tetapi saya pikir daftar area yang terlibat dalam HPC adalah:

Masing-masing bidang ini sangat besar dan ada begitu banyak pengetahuan yang sulit diperoleh semuanya sebelum mencoba melakukan apa pun!

Dalam kasus saya, saya mulai dari satu sudut teknik dan perlahan-lahan mengembangkan pengalaman dan jaringan kolaborasi. Pada awalnya saya hanya punya satu masalah teknik / matematika terapan yang ingin saya selesaikan, dari sana saya pindah ke pemrograman, untuk mendapatkan lebih banyak kinerja melalui komputer yang lebih kuat, ke analisis numerik, ke algoritma canggih, ke komputer paralel, ke algoritma paralel , untuk komputer yang lebih besar, ke model ilmiah yang lebih lengkap, dan akhirnya ke masalah baru dan iterasi lagi. Jika saya melihat ke belakang, mencoba memahami dan memecahkan masalah pertama saya adalah apa yang menyusun rencana studi saya. Memiliki penyelia yang dapat membuat Anda tetap di jalur yang benar juga banyak membantu, jika tidak berhati-hatilah agar tidak kehilangan tujuan akhir Anda (dalam kasus saya, ini adalah masalah sains yang saya miliki).

Jika saya harus menyebutkan satu hal yang benar-benar membuat perbedaan saat menempuh jalur HPC adalah bertemu orang-orang dari daerah lain, bertukar ide, dan memanfaatkan pengetahuan yang didistribusikan dari komunitas. Juga, penting untuk tidak terlalu takut secara terbuka naif dan melakukan hal-hal konyol. Langkah pertama selalu sulit dan yang paling penting!

fcruz
sumber
2

Ini adalah rencana saya untuk belajar sendiri beberapa yayasan HPC musim semi mendatang. Saya telah menjadi pengembang selama satu setengah dekade terakhir, dan bekerja secara eksklusif dengan teknologi Microsoft. Saya juga seorang mahasiswa, sehingga saya bisa mendapatkan beberapa perangkat lunak gratis melalui MSDN Academic Alliance(profil Anda menunjukkan bahwa Anda adalah mahasiswa pascasarjana, jadi Anda harus memeriksa untuk melihat apakah sekolah Anda berpartisipasi), dan menyediakan ruang untuk barang-barang di rumah adalah faktor pembatas. Kantor saya / den / ManCave sudah memiliki sejumlah komputer di dalamnya sehingga saya sudah dapat menguji beberapa hal. Windows Server 2008 HPC terdaftar dalam beberapa paket yang tersedia, tetapi sepertinya menghilang dari perangkat lunak sekolah saya yang dapat diunduh selama semester terakhir ("cluster compute pack" adalah add-on untuk server 2003, sementara server 2008 hpc hadir dengan versi stripped down server 2008, dengan ccp, Anda harus menonaktifkan layanan yang tidak Anda butuhkan).

Topologi yang saya rencanakan adalah "SOA Enabled Cluster" yang merupakan gambar ke-4 di halaman ini (klik kotak kecil di bawah gambar utama). Saya sudah memiliki Active Directory dan beberapa server lain sudah disiapkan, jadi saya sedang berpikir untuk mendapatkan 4 komputer Dell form factor murah dari eBay (refurb Dell 655 SFF tampaknya berjalan di $ 100-200 stadion baseball). Karena saya hanya mencoba mempelajari beberapa hal, saya percaya saya hanya perlu "simpul kepala" "simpul perantara" dan 2 "simpul penghitungan" dan beberapa kartu ethernet cadangan untuk melihat apa yang bus pribadi dan aplikasi (dari gambar itu ) lakukan. Lisensi MSDNAA memungkinkan hingga 16 node komputasi yang jauh lebih banyak daripada yang saya cari.

Saya telah membaca Beowulf Cluster Computing dengan Windows , dan saya pikir saya punya ide apa yang saya hadapi untuk beberapa ide di kantor (ada versi linux buku itu, tapi saya punya 0 keterampilan / platform linux di rumah - lakukan apa yang benar untuk diri Anda sendiri). Ada banyak kelompok besar yang tersedia di kantor , tetapi sudah jenuh, dan pendidikan "Saya ingin / perlu belajar X" slot waktu sangat sulit didapat. Seseorang sudah diharapkan untuk mengetahui hal-hal sebelum dapat mengirimkan pekerjaan.

Tangurena
sumber