Daemon truyền thông được phục hồi khi tiến trình MPI của nó bị lỗi. Cơ chế phục hồi của nó tương tự cơ chế khởi tạo ban đầu. Bộ điều phối cũng dùng rsh và gửi danh sách nodeListArray[ ] cho Daemon. Hình 9 mô tả cơ chế phục hồi Daemon của rank bị lỗi.
Máy điều phối Máy chạy lại
Bộ điều phối Daemon truyền thông rsh (1) rank,id (2) nodeListArray[] (3) Chú thích lệnh rsh truyền thông TCP
Hình 8: Giao thức phục hồi Daemon lỗi
1) Khi phục hồi Daemon, Bộ điều phối dùng rsh chạy lại Daemon truyền thông trong chế độ khôi phục. Tham số đầu vào lúc này có “restart <group>.<rank>.restart.pipe” dùng để làm tham số đầu vào cho thư viện condor phục hồi tiến trình MPI.
2) Tiếp theo, Bộ điều phối nhận id và rank gửi về từ Daemon truyền thông phục hồi.
3) Dựa vào các thông tin trên, Bộ điều phối gửi danh sách nodeListArray[] cho tiến trình truyền thông. Danh sách này bao gồm địa chỉ IP và cổng lắng nghe của các Daemon truyền thông khác trong cùng một job.
Giao thức phục hồi các sự kiện
Phục hồi các sự kiện diễn ra giữa Daemon truyền thông phục hồi với Bộ ghi sự kiện. Theo lý thuyết, mỗi sự kiện nhận thông điệp của tiến trình MPI đều lưu lại các thông tin sau:
Daemon
truyền thông Bộ ghi sự kiện myrank, H (1)
nbr, CausualId[] (2)
Các thông tin liên quan (định danh bên gửi, bộ đếm bên gửi, bộ đếm bên nhận, số lần thăm dò) được Daemon bên nhận gửi lên cho Bộ ghi sự kiện lưu lại. Hình 2-10 mô tả giao thức phục hồi các sự kiện cho Daemon lỗi.
Hình 9: Giao thức phục hồi sự kiện giữa Daemon truyền thông và Bộ ghi sự kiện
1) Daemon truyền thông gửi rank và giá trị bộ đếm tại lần checkpoint cuối cùng lên cho Bộ ghi sự kiện (giá trị bộ đếm được trích ra từ các thông tin gắn với ảnh checkpoint lưu trữ).
2) Sau đó, Daemon truyền thông nhận danh sách thông tin sự kiện (CausualId[]) từ Bộ ghi sự kiện dựa trên giá trị bộ đếm H và rank. Bộ ghi trả về các sự kiện có giá trị bộ đếm bên nhận lớn hơn H. Các giá trị này được ghi vào danh sách thông điệp cần gửi lại. Nếu danh sách rỗng, đồng nghĩa với việc Daemon truyền thông là Daemon mới khởi tạo, không phải là Daemon phục hồi .