Cách dễ nhất để tận dụng bộ đa xử lý là gói multicore
bao gồm chức năng mclapply(). mclapply() là một phiên bản đa lõi của lapply(). Vì vậy, bất kỳ quá trình có thể sử dụng lapply() có thể dễ dàng chuyển đổi thành một quá trình mclapply(). Tuy nhiên, đa lõi không hoạt động trên Windows. Tôi đã viết một bài đăng blog về điều này last year mà có thể hữu ích. Gói phân tích cuộc cách mạng được tạo, doSMP, KHÔNG phải là phiên bản đa luồng R. Đó là phiên bản đa lõi của Windows.
Nếu công việc của bạn là embarrassingly parallel, bạn nên làm quen với kiểu cấu trúc lapply(). Điều đó sẽ cho phép bạn dễ dàng phân biệt vào mclapply() và thậm chí phân phối điện toán bằng cách sử dụng cùng một trừu tượng.
Mọi thứ trở nên khó khăn hơn nhiều cho các hoạt động không phải là "lúng túng song song".
[EDIT]
Là một mặt lưu ý, Rstudio đang ngày càng trở nên phổ biến như một kết thúc trước cho R. Tôi yêu Rstudio và sử dụng nó hàng ngày. Tuy nhiên cần lưu ý rằng Rstudio không chơi tốt với Multicore (ít nhất là vào tháng 10 năm 2011 ... Tôi hiểu rằng nhóm RStudio sẽ sửa lỗi này). Điều này là bởi vì Rstudio làm một số forking đằng sau hậu trường và các dĩa xung đột với nỗ lực của Multicore để ngã ba. Vì vậy, nếu bạn cần Multicore, bạn có thể viết mã của bạn trong Rstuido, nhưng chạy nó trong một phiên bản R-plain.
Nguồn
2011-01-23 17:52:23
Revolutions (http://www.revolutionanalytics.com/) cung cấp một phiên bản đa luồng của R. Tất nhiên, thương mại của họ trạng thái dường như có một hiệu ứng phân cực trong cộng đồng R. –
Tôi cũng sẽ thêm rằng nhiều công dụng điển hình của R sẽ không thể tuân theo sự song song tự động. Nếu bạn đã cho chúng tôi biết những gì bạn làm chương trình thì bạn có thể nhận được câu trả lời tốt hơn. –
có thể trùng lặp của [Sử dụng Multicore trong R cho máy pentium 4 HT] (http://stackoverflow.com/questions/3545559/using-multicore-in-r-for-a-pentium-4-ht-machine) –