Saya memiliki R-script untuk membaca sejumlah besar data csv dari file yang berbeda dan kemudian melakukan tugas-tugas pembelajaran mesin seperti svm untuk klasifikasi.
Apakah ada perpustakaan untuk memanfaatkan beberapa core di server untuk R.
atau
Apa cara yang paling cocok untuk mencapai itu?
r
parallel-computing
multicore
mohans
sumber
sumber
Jawaban:
Jika ada di Linux, maka yang paling mudah adalah multicore . Di luar itu, saya sarankan untuk melihat MPI (terutama dengan paket salju ).
Secara umum, lihat:
Terakhir, saya sarankan menggunakan paket foreach untuk mengabstraksi backend paralel dalam kode Anda. Itu akan membuatnya lebih berguna dalam jangka panjang.
sumber
Jika Anda menggunakan GNU / Linux jawaban sebelumnya oleh Shane dan Dirk sangat bagus.
Jika Anda memerlukan solusi untuk windows, ada satu di posting ini:
Pemrosesan Multicore Paralel dengan R (di Windows)
Meskipun paket belum di CRAN. itu dapat diunduh dari tautan itu.
sumber
Shane benar. Baik multicore dan Rmpi adalah pemenang.
Cakupan topik yang sedikit lebih luas ada di CRAN Task View on High-Performance Computing . Ini juga menghubungkan ke artikel survei yang cukup baru tentang Komputasi Paralel dengan R dari JSS.
Terakhir, beberapa contoh dan tips praktis ada di Pengenalan HPC dengan tutorial R yang saya berikan sesekali - lihat halaman presentasi saya untuk salinan terbaru dari minggu lalu di useR.
sumber
Saya perhatikan bahwa jawaban sebelumnya tidak memiliki beberapa pertimbangan HPC umum.
Pertama-tama, tak satu pun dari paket-paket itu akan memungkinkan Anda untuk menjalankan satu SVM secara paralel. Jadi yang dapat Anda percepat adalah optimasi parameter atau validasi silang, tetap Anda harus menulis fungsi sendiri untuk itu. Atau tentu saja Anda dapat menjalankan pekerjaan untuk dataset yang berbeda secara paralel, jika itu adalah suatu kasus.
Masalah kedua adalah memori; jika Anda ingin menyebarkan perhitungan melalui beberapa komputer fisik, tidak ada makan siang gratis dan Anda harus menyalin data - di sini Anda harus mempertimbangkan apakah masuk akal untuk mendistribusikan salinan data di seluruh komputer untuk menghemat komunikasi. Di sisi lain, jika Anda ingin menggunakan beberapa core pada satu komputer, multicore lebih sesuai karena memungkinkan semua proses anak mengakses memori proses induk, sehingga Anda dapat menghemat waktu dan banyak ruang memori.
sumber
sprint
untuk R dengan fungsipsvm
, tetapi mereka sedikit ketinggalan dalam mengikuti perubahan R 3.0 dan pedoman pengiriman CRAN baru, sehingga unduhan saat ini tidak tersedia di CRAN atau sepenuhnya kompatibel dengan R 3.0. Jarak tempuh Anda mungkin beragam.Respons Shane dan Dirk sangat tepat.
Namun demikian, Anda mungkin ingin melihat versi komersial R, yang disebut Revolution R yang dibangun untuk menangani kumpulan data besar dan berjalan pada banyak inti. Perangkat lunak ini gratis untuk akademisi (yang mungkin menjadi masalah Anda, saya tidak tahu)
sumber