Tôi có một mã R liên quan đến một số công nhân foreach để thực hiện một số tác vụ song song. Tôi đang sử dụng foreach và doMC cho mục đích này. Tôi muốn để cho mỗi công nhân foreach tuyển dụng một số công nhân mới và phân phối một số phần của mã của họ, mà là song song, với họ.Cho phép nhân viên foreach đăng ký và phân phối các nhiệm vụ phụ cho những người lao động khác
Mã hiện trông giống như:
require(doMC)
require(foreach)
registerDoMC(cores = 8)
foreach (i = (1:8)) %dopar% {
<<some code here>>
for (j in c(1:4)) {
<<some other code here>>
}
}
Tôi đang tìm kiếm một mã số lý tưởng mà sẽ trông như thế:
require(doMC)
require(foreach)
registerDoMC(cores = 8)
foreach (i = (1:8)) %dopar% {
<<some code here>>
foreach (j = (1:4)) %dopar% {
<<some other code here>>
}
}
tôi thấy một ví dụ về mô hình đa xử lý song song sử dụng doSNOW và doMC here (https://www.rmetrics.org/files/Meielisalp2009/Presentations/Lewis.pdf#page=17) . Tuy nhiên, tôi không biết liệu nó có làm những gì tôi muốn hay không.
Ngoài ra, có vẻ như Nested foreach không áp dụng được vì nó yêu cầu hợp nhất hai vòng (see here), trong trường hợp của tôi, điều này không được ưu tiên; vòng lặp thứ hai chỉ giúp phần đầu tiên cho một phần của mã. Hãy sửa tôi nếu tôi sai.
Cảm ơn.
Có thể không chính xác những gì bạn muốn, nhưng bạn có thể có các biểu thức 'foreach' lồng nhau: http://cran.r-project.org/web/packages/foreach/vignettes/nested.pdf. Tuy nhiên, tôi không biết về việc tuyển dụng nhiều công nhân hơn trong vòng lặp. – ialm
Cảm ơn. Tuy nhiên, có vẻ như forested lồng nhau không áp dụng cho trường hợp của tôi vì nó yêu cầu hợp nhất hai vòng lồng nhau, trong khi tôi cần một vòng lặp nội bộ được gọi chỉ cho một phần của mã. Tôi sẽ cập nhật câu hỏi để phản ánh điều này. – imriss