Môi trường sử dụng đánh giá hiệu năng MPICH-V gồm tập các máy trạm vi xử lí Pentium III 500, chạy hệ điều hành Redhat 7.3, kết nối qua mạng Ethernet 100Mbps. Mỗi máy một vi xử lí 256MB RAM ổ cứng 4 GB. Mỗi ứng dụng chạy 4 tiến trình, mỗi tiến trình trên một vi xử lí.
Các ứng dụng thử nghiệm là gói NPB2.3 do NASA cung cấp. Các gói phần mềm này lấy từ các phép toán dấu phẩy động và các kiểu ứng dụng thuận lợi cho checkpoint và ghi thông điệp. Mỗi gói phân loại thành một lớp, gồm 4 lớp S, A, B và C. Mỗi lớp định nghĩa kích cỡ bài toán (số tiến trình MPI). Trong NPB 2.3, mỗi gói benchmark thời gian tính toán tăng theo thứ tự S, A, B, và C. Thời gian chạy của các gói benchmark sử dụng trong nghiên cứu, tỉ lệ số thông điệp trên mỗi tiến trình và kích cỡ. Các đối tác trao đổi của các tiến trình được chỉ ra trong Bảng 4.1 và Hình 4.2. Ứng dụng lớp NPB Số thông điệp/s Kích cỡ thông điệp (KB) Thời gian thực thi (s) Bt Class A 6 50.7 2381 Cg Class B 20 60.7 1415 Lu Class A 62 3.7 1064 Sp Class A 22 44.4 1038 Mg Class A 38 46.2 1061
Kết luận và hướng phát triển của đề tài
Kiến trúc chống lỗi MPICH-V sử dụng giao thức ghi lại thông điệp bên gửi. Hiện nay tích hợp cùng MPICH 1.2.4, mô hình truyền thông này sẽ có khả năng chống lỗi tự động và trong suốt. Kiến trúc này dựa trên năm thành phần chủ yếu: tập các nút tính toán (CNs); một Dispatcher; tập các Checkpoint Server; một Checkpoint Scheduler; và tập các Event Logger. MPICH-V thiết kế để làm giảm các chi phí và tăng hiệu năng so với các môi trường khác. Hệ thống này tối thiểu cần một tập các nút có thể không ổn định, một nút ổn định để chạy Checkpoint Server, và nút ổn định thứ 2 để chạy Dispatcher, Checkpoint Scheduler và Event Logger. Rõ ràng, tỉ lệ các nút tin cậy trên mạng yêu cầu rất ít.
Do đó, môi trường này phù hợp sử dụng trong thực tế. Nên nó được chọn nghiên cứu và tích hợp với một hệ thống BKSupComp. Sau này có thể sử dụng môi trường tính toán chung này đo hiệu năng các giao thức khôi phục cho từng bài toán ứng dụng cụ thể.
Khi sử dụng môi trường truyền thông chống lỗi này vào việc nghiên cứu hiệu năng các giao thức khôi phục. Thực tiễn đã cho thấy môi trường này có một số các hạn chế sau đây :
• Giao thức ghi lại thông điệp không thoã mãn được cả các yêu cầu đặt ra: cùng lúc giảm chi phí quá trình giải phóng lỗi, khôi phục nhanh, và ngừa lỗi. Muốn thực hiện điều này, phải phát triển giao thức ghi lại thông điệp cả bên phía tiến trình nhận một cách đồng thời. Giao thức này là giao thức lai giữa hai giao thức ghi thông điệp ở bên gửi lẫn bên nhận.
• Thực tế cho thấy truyền thông do các giao thức lưu ảnh tiến trình gây ra chi phí rất lớn. Bởi các tải thực thi thường chiếm giữ rất nhiều bộ nhớ, vì vậy mỗi lần tiến trình gửi ảnh, chiếm giữ nhiều băng thông mạng. Hiệu năng truyền thông điệp giữa các tiến trình giảm. Một giải pháp có thể giảm phần nào lưu lượng chiếm giữ băng thông mạng của các tiến trình checkpoint là phân bố nhiều Bộ lưu trữ ảnh tiến trình phục vụ cho một job.
• Môi trường này có điểm yếu là không thể khôi phục được các tiến trình có trao đổi với thế giới bên ngoài, chẳng hạn như hệ thống file. Điều này rất khó thực hiện, vì môi trường này dựa vào truyền thông
điệp trực tiếp giữa các tiến trình, không được xây dựng trên cơ sở các tiến trình giao tiếp với nhau qua file.
• Tuy nhiên, môi trường này rất phù hợp với việc chạy các tải dài ngày và kích thước các thông điệp chuyển giao cho nhau lớn. Khi đó hiệu năng thực tế rất cao [1]. Là vì kiến trúc MPICH-V cho phép các tiến trình MPI chỉ trực tiếp truyền thông với Daemon truyền thông. Không phải thực hiện việc quản lí hàng đợi thông điệp nên nó có thể dành nhiều thời gian hơn cho thực hiện tính toán. Đồng thời, các tải chạy thời gian dài, chi phí thời gian cho việc lấy ảnh tiến trình không đáng kể.
• Việc tích hợp môi trường chống lỗi cho hệ thống tính toán song song với mong muốn chống lỗi hoàn toàn trong suốt trên thực tế lại không thực sự phù hợp. Có thể giải thích như sau: với mỗi ứng dụng riêng biệt, khả năng gây ra lỗi trên các ứng dụng đó khác nhau; các nguyên nhân gây lỗi có thể là do chiếm giữ quá nhiều tài nguyên; cũng có thể là do bản thân tiến trình gây lỗi do lập trình. Vì vậy, cần thiết có sự phân tích kiểm soát và phân loại từng kiểu ứng dụng sao cho phân bổ các thành phần môi trường một các phù hợp. Cần có một công cụ điều khiển trực quan tới từng công việc. Sâu hơn nữa, kiểm soát từng tiến trình để có thể nắm bắt trạng thái các job thật trực quan. Từ đó, có thể phân bố các tiến trình một cách phù hợp nhất cho từng công việc chuyên biệt. Hiệu năng hệ thống có thể nâng cao.
Qua nghiên cứu và tích hợp môi trường chống lỗi vào hệ BKSupComp, có thể thấy, để hệ thống này có thể sử dụng trong thực tiễn, cần cải thiện các vấn đề hiệu năng ở trên. Đồng thời, cần phải phát triển hệ thống thành môi trường tính toán mang tính chuyên dụng. Không nên xây dựng hệ thống mang tính dịch vụ. Do đó, công việc tiếp theo là xây dựng một công cụ phân tích các đặc tả đối với từng công việc một cách trực quan. Sau đó dựa trên các đặc tả này ta thiết kế một mạng tính toán gồm các thành phần vật lý dành cho các chương trình trong môi trường chống lỗi. Hướng phát triển trên sẽ đem lai kết quả khả quan trong việc xây dựng môi trường tính toán song song thay thế cho thế hệ máy mainframe.
Thuật ngữ
Domino-effect: hiệu ứng lan truyền khi phục hồi tiến trình.
Checkpoint: lấy ảnh tiến trình tại một thời điểm. Messages-logging: ghi lại thông điệp trao đổi.
Pessimistic-logging: ghi lại thông điệp khi tiến trình nhận đã nhận thông điệp. Optimistic-logging: ghi lại tất cả thông điệp, kể cả đã nhận hay chưa.
Causual-logging: ghi thông điệp đã nhận ở cả hai phía trao đổi. Sender-base: ghi thông điệp bên phía gửi.
Receive-base: ghi thông điệp bên phía nhận.
Daemon: tiến trình trung gian làm bộ đệm gửi nhận thông điệp cho tiến trình
MPI
Dispatcher: bộ điều phối cho một job. Checkpoint Server: phục vụ lưu trữ ảnh.
Checkpoint Scheduler: điều khiển lấy checkpoint cho các tiến trình MPI. Event Logger: ghi lại các sự kiện gửi nhận thông điệp
Tài liệu tham khảo
[1] Aur´elien Bouteiller, Franck Cappello, Thomas H´erault, G´eraud Krawezik, Pierre Ltôiarinier, Fr´ed´eric Magniette. MPICH-V : A Fault Tolerant MPI for Volatile Nodes based on Pessimistic Sender Base Message Logging. LRI, Universit ´e de Paris Sud, Orsay, France INRIA Futurs, Saclay, France URL: http://www.lri.fr/ ˜gk/MPICH-V
[2] L. Alvisi and K. Marzullo. Message logging : Pessimistic, optimistic, and causal. In Proceedings of the 15th International Conference on Distributed ComputingSystem (ICDCS 1995), pages 229–236. IEEE CS Press, May-June 1995. [3] David Bailey, Tim Harris, William Saphir, Rob Van Der Wijngaart, Alex Woo, and Maurice Yarrow. The NAS Parallel Benchmarks 2.0. Report NAS-95-020, Numerical Aerodynamic Simulation Facility, NASA Ames Research Center, 1995. [4] George Bosilca, Aur´elien Bouteiller, Franck Cappello, Samir Djilali, Gilles F ´edak, C´ecile Germain, Thomas H´erault, Pierre Lemarinier, Oleg zodygensky, Fr ´ed´eric Magniette, Vincent N´eri, and Anton Selikhov. Mpich-v: Toward a scalable fault tolerant mpi for volatile nodes. In SC2002: High Performance Networking and Computing (SC2002), Baltimore USA, Novembre 2002. IEEE/ACM.
[5] M. Elnozahy, L. Alvisi, Y. M. Wang, and D. B. Johnson. A survey of rollback- recovery protocols in message passing system. Technical Report CMU-CS-96-181, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA, October 1996.
[6] Robert E.Strom, David F. Bacon, and Shaula A. Yemini. Volatile logging in n- fault-tolerant distributed system. In 18th Annual International Symposium on Fault- Tolerant Computing (FTCS-18), pages 44–49. IEEE CS Press, June 1988.
[7] M. Litzkow, T. Tannenbaum, J. Basney, and M. Livny. Checkpoint and migration of unix processes in the condor distributed processing system. Technical Report Technical Report 1346, University of Wisconsin-Madison, 1997.
[8] Sriram Rao, Lorenzo Alvisi, and Harrick M. Vin. Egida: An extensible toolkit for low-overhead fault tolerance. In 29th Symposium on Fault-Tolerant Computing (FTCS’99), pages 48–55. IEEE CS Press, 1999.
[9] Georg Stellner. Cocheck: Checkpointing and process migration for mpi. In
Proceedings of the 10th International Parallel Processing Symposium (IPPS ’96), Honolulu, Hawaii, April 1996. IEEE CS Press.
[10] Yuqun Chen, Kai Li, and James S. Planck. Clip: A checkpointing tool for message-passing parallel programs. In SC97: High Performance Networking and Computing (SC97). IEEE/ACM, November 1997.