Sau khi tôi đã chơi một thời gian bằng gói song song của R trên máy dựa trên Debian của tôi, tôi vẫn không thể tìm cách xóa tất cả các quy trình con zombie sau khi tính toán.Xóa các quá trình zombie bằng gói song song
Tôi đang tìm giải pháp độc lập chung và hệ điều hành.
Dưới đây là một kịch bản đơn giản minh họa vấn đề đối với 2 lõi:
library(parallel)
testfun <- function(){TRUE}
cltype <- ifelse(.Platform$OS.type != "windows", "FORK", "PSOCK")
cl <- makeCluster(2, type = cltype)
p <- clusterCall(cl, testfun)
stopCluster(cl)
Thật không may, kịch bản này rời hai quá trình zombie trong bảng quá trình mà chỉ nhận được giết nếu R là đóng cửa.
Xin chào Josh, Xin lỗi vì trả lời trễ của tôi - bạn nói đúng, điều này dường như chỉ là vấn đề đối với các cụm Fork. Các cụm PSOCK cũng hoạt động trên Máy Debian của tôi - chỉ nghĩ rằng Forking sẽ nhanh hơn. Cảm ơn rất nhiều! – user625626
Điều này có vẻ là một sự giám sát ngớ ngẩn với các cụm FORK. Tôi đã đăng một báo cáo lỗi tại https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=15471. Các quá trình Zombie chủ yếu là vô hại bởi vì chúng không tiêu thụ tài nguyên. Họ chỉ đang ngồi trong bảng tiến trình để quá trình cha mẹ có thể kiểm tra trạng thái thoát của họ. Kiểm tra trạng thái thoát của chúng với 'thư viện (fork) wait()' sẽ dọn sạch từng zombie một (và in ra trạng thái thoát của mỗi lần). – computermacgyver
Gói ngã ba không còn nữa. – russellpierce