Họ có thể tham gia mỗi máy trạm đến một tập các dự án, và có thể điều khiển chỉ định các tài nguyên giữa các dự án.
Một dự án dựa trên BOINC cung cấp trên các máy chủ của nó. Các máy trạm tải các chương trình thực thi ứng dụng và các file dữ liệu từ máy chủ, thực hiện các nhiệm vụ (bằng cách chạy các ứng dụng theo các file dữ liệu đặc tả), và tải lên các file đầu ra đến máy chủ. Phần mềm BOINC bao gồm các thành phần phía máy chủ, như là các chương trình lập lịch và tiến trình để quản lý phấn bố và tập hợp các nhiệm vụ [12], và giao diện dựa trên web cho những người tình nguyện và các nhà quản trị dự án.
Hình 1-5. Mô hình cơ bản của BOINC
1.3.2.2Các đặc trưng cơ bản của BOINC [23]
Tính độc lập của dự án: Có nhiều dự án khác nhau đều sử dụng BOINC, tuy nhiên các dự án độc lập hoàn toàn với nhau. Mỗi dự án có máy chủ và cơ sở dữ liệu riêng, không có thư mục trung tâm cho tất cả các dự án. Điểm chung của chúng là đều lấy BOINC làm nền phần mềm
Có thể bạn quan tâm!
- Giải pháp nâng cao hiệu quả của giản đồ lập lịch dựa trên độ tin cậy trong các hệ thống tính toán tình nguyện - 1
- Giải pháp nâng cao hiệu quả của giản đồ lập lịch dựa trên độ tin cậy trong các hệ thống tính toán tình nguyện - 2
- Lý Thuyết Cơ Bản Về Lập Lịch Dựa Trên
- Kiểm Tra Điểm Không Dùng Danh Sách Đen
- Lập Lịch Round Robin Dựa Trên Sự Ưu Tiên Về Khả Năng Tính Toán
Xem toàn bộ 83 trang tài liệu này.
Tính linh hoạt trong sử dụng: Những người tình nguyện có thể tham gia vào nhiều dự án; họ kiểm soát những dự án ấy, quản lý và phân chia tài nguyên cho các dự án. Khi một dự án kết thúc hay không làm việc, tài nguyên dành cho nó sẽ được thu hồi và phân chia cho các dự án khác.
Linh hoạt trong phát triển: Các ứng dụng viết bằng C, C++ hay Fortran có thể chạy các ứng dụng BOINC mà không cần cải biên hay cải biên rất ít. Một ứng dụng có thể bao gồm nhiều file (đa chương trình). Những phiên bản mới của ứng dụng có thể được tự động triển khai, cập nhật.
Tính bảo mật: BOINC bảo vệ để chống lại các kiểu tấn công có thể xảy ra. Ví dụ chữ ký số dựa trên mã hoá khoá công khai chống lại sự phân phối của virus…
Tính thực thi và khả chuyển: Phần mềm máy chủ BOINC vô cùng hiệu quả. Vì thế, 1 máy chủ trung tâm có thể gửi đi và điều khiển hàng triệu công việc trong 1 ngày. Kiến trúc máy chủ còn có khả năng biến đổi cao, làm cho nó dễ dàng tăng khả năng máy chủ hoặc sẵn sàng tăng thêm nhiều máy.
Mã nguồn mở: Bản thân BOINC được cung cấp dưới dạng mã nguồn mở, cả BOINC máy chủ và BOINC khách. Tuy vậy các ứng dụng của BOINC không nhất thiết phải là nguồn mở.
Khả năng tính toán với lượng dữ liệu lớn: BOINC hỗ trợ các ứng dụng tạo ra hay sử dụng một số lượng lớn dữ liệu, hoặc cần dùng nhiều bộ nhớ. Sự phân phối và tập hợp dữ liệu có thể được chia ra trên nhiều máy chủ. Những người tham gia trao đổi lượng dữ liệu lớn một cách kín đáo. Những người sử dụng có thể chỉ rõ giới hạn về bộ nhớ hay băng thông. Công việc chỉ gửi đến những máy có khả năng hoàn thành.
Platform đa dạng: phiên bản BOINC dành cho máy trạm có sẵn cho hầu hết các platform thông dụng (Mac OS X, Windows, Linux và các hệ thống Unix khác như Ubuntu, Fedora, Redhat…). Máy trạm có thể sử dụng nhiều CPU.
Kiến trúc phần mềm dễ mở rộng: Những thành phần quan trọng của BOINC đều được tài liệu hoá và công bố rộng rãi; nhờ đó các nhà phát triển ở hãng thứ 3 có thể dễ dàng tạo phần mềm và website mở rộng BOINC.
Tính cộng đồng người tình nguyện: BOINC cung cấp các công cụ trên web như bảng tin nhắn, thông tin cá nhân những người tình nguyện và tin nhắn riêng;
điều đó giúp những người tình nguyện dễ dàng hình thành những cộng đồng trực tuyến để trao đổi, giúp đỡ lẫn nhau.
1.3.2.3Kiến trúc BOINC
BOINC bao gồm các thành phần chủ và khách (Xem trong hình 1.5). BOINC khách chạy các ứng dụng dự án. Các ứng dụng được liên kết với hệ thống thời gian chạy, các chức năng của hệ thống này bao gồm điều khiển xử lý, điều khiển điểm kiểm tra, và các đồ thị [13]. Máy khách thực thi lập lịch CPU(được thực thi trên đỉnh của bộ lập lịch của hệ điều hành cục bộ, tại mức hệ điều hành, BOINC chạy các ứng dụng tại mức độ ưu tiên 0). Nó có thể chiếm giữ các ứng dụng hoặc bằng cách trì hoãn chúng(và rời chúng vào trong bộ nhớ) hoặc bằng cách chỉ dẫn chúng để thoát. BOINC chủ thực hiện việc cung cấp các ứng dụng và các đơn vị công việc, xử lý các kết quả tính toán, quản lý sự phân phối và tập hợp dữ liệu.
Hình 1-6. Kiến trúc BOINC
Tất cả các kết nối mạng trong BOINC được khởi tạo bởi các máy khách. Một máy khách giao tiếp với một máy chủ gán nhiệm vụ của dự án [12] theo HTTP. Yêu cầu là một file dữ liệu XML trong đó bao gồm các miêu tả về phần cứng và khả năng thực hiện, một danh sách công việc đã hoàn thành, và một yêu cầu cho một số lượng chắc chắn (diễn tả giới hạn thời gian CPU) công việc thêm. Thông điệp phản hồi
bao gồm một danh sách các công việc mới(mỗi công việc được miêu tả bởi một thành phân XML mà liệt kê ứng dụng, các file đầu vào đầu ra, bao gồm vị trí các máy chủ dữ liệu từ mỗi file có thể được tải về). Đôi khi các máy khách có các kết nối vật lý bị trục trặc. Như là cách máy tính có thể kết nối một ít hàng ngày. Trong khoảng thời gian kết nối mạng, BOINC cố gắng tải đủ công việc để giữ cho máy tính bận cho đến lần kết nối kế tiếp. Hình vẽ bên dưới chỉ định trình tự thực hiện giữa máy trạm và máy chủ.
Hình 1-7. Sự tương tác giữa máy trạm và máy chủ
1.3.3 Lập lịch trong tính toán tình nguyện
Theo như khái niệm về hệ thống tính toán tình nguyện ở trên thì một hệ thống tính toán tình nguyện bao gồm nhiều máy trạm kết nối đến máy chủ, trong đó máy trạm kết nối đến máy chủ để lấy công việc và thực hiện rồi trả về kết quả cho máy chủ, còn máy chủ thì thực thi lựa chọn các máy trạn để gán nhiệm vụ. Vì vậy quá trình xử lý lấy và thực thi các công việc này bao gồm bốn chính sách liên quan [14], [15]:
Lập lịch CPU : Của các việc có thể chạy hiện nay, công việc nào có thể chạy.
Lấy công việc : Khi nào để nghị một dự án cho nhiều công việc, dự án nào
được đề nghị và đề nghị bao nhiêu công việc.
Gửi công việc : Khi một dự án nhận được một yêu cầu công việc, nó lên gửi công việc nào.nó lên gửi công việc nào.
Ước lượng thời gian hoàn thành : Ước lượng thời gian CPU duy trì công việc như thế nào.
Lập lịch trong hệ thống tính toán tình nguyện có vai trò hết sức quan trọng nó giúp nâng cao toàn bộ thời gian thực thi của hệ thống. Với máy trạm nó giúp cho lập lịch CPU và lấy công việc. Với máy chủ lập lịch giúp cho tối đa hóa được số công việc được thực thi và giảm thời gian thực thi cua hệ thống.
1.3.3.1Lập lịch phía máy trạm
Lập lịch phía máy trạm đó là các chính sách lập lịch CPU và lấy công việc, vấn đề lập lịch phía may trạm phải quan tâm đến các đầu vào: Trước tiên đó là các đặc điểm phần cứng của máy trạm như là số lượng bộ vi xử lý. Máy trạm theo dõi các đặc điểm ứng dụng đa dạng như là phân số thực thi(phân số của thời gian chạy và được phép làm tính toán), và các thống kê về các kết nối mạng của nó. Thứ hai đó là sự ưu tiên của người dùng. Sự ưu tiên nay bao gồm : Tài nguyên chia sẻ cho mỗi dự án, giới hạn về sử dụng bộ vi sử lý (điều kiện để tính toán trong khi máy đang trong sử dụng, số lượng tối đa CPU được dùng, và phân số thời gian CPU được dùng lớn nhất), khoảng kết lối(thời gian tối thiểu giưa các giai đoạn hoạt động của mạng, điều nay dùng để cung cấp một gợi ý các máy trạm kết nối thường mạng thường xuyên như thế nào)…. Cuối cùng mỗi công việc có một số lượng các tham số đặc tả cho dự án, bao gồm ước lượng của số lượng các toán tử con trỏ động của dự án và thời gian cuối cùng để máy trạm báo cáo công việc.
1.3.3.2Lập lịch phía máy chủ
Lập lịch phía máy chủ là phải sử dụng tối ưu được nguồn tài nguyên tình nguyện. Vấn đề lập lích phía máy chủ đó là gửi công việc và ước lượng thời gian hoàn thành công việc. Có rất nhiều các nghiên cứu về lập lịch phía máy chủ để tối ưu hóa được nguồn tài nguyên tình nguyện. Chính sách lập lịch sử dụng phổ biến trong BOINC là đến trước phục vụ trước, trong chính sách lập lịch này sẽ gán các công việc có khả năng đầu tiên đến các máy trạm yêu câu công việc đầu tiên đáp ứng được các tiêu chí về sự dư thừa đồng nhất cho việc phân bố nhiều công việc HR (HR phân bố các công việc giống nhau đến các máy trạm có khả năng tính toán như nhau nghĩa là chúng có hệ điều hành giống nhau và có bộ vi xử lý thuộc cùng nhà sản xuất). Trong [19], các tác giả đã đưa ra một chính sách lập lịch dựa trên ngưỡng, chính
sách này thiết lập hai ngưỡng một cho khả năng thực hiện công việc của máy trạm và một cho sự tin cậy của máy trạm và sử dụng những ngưỡng này để xác minh các công việc phân bố đến máy trạm. Nó sẽ không phân bố công việc đến máy trạm có tỉ lệ độ tin cậy và khả năng thực hiện công việc thấp hơn giá trị ngưỡng định nghĩa. Những ngưỡng này thuộc trong khoảng tử 0 đến 1. Khi một máy trạm yêu cầu một công việc mới, máy chủ sẽ tính toán tỉ lệ khả năng thực hiện công việc và tỉ lệ tin cậy của máy trạm dựa trên lịch sử thực hiện công việc của máy trạm. Nếu đồng thời hai tỉ lệ này lớn hơn ngưỡng đã định nghĩa thì máy trạm được gán công việc nếu không thi máy trạm không được gán công việc. Việc tính khả năng thực hiện của máy trạm dựa vào tổng số công việc được phân bố đến máy trạm và số công việc mà máy trạm đã hoàn thành cho đến thời điểm hiện tại (nó chính bằng tỉ số giữa số công việc đã hoàn thàng trên tổng số công việc được giao), còn độ tin cậy của máy trạm chính là tỉ số giữa các công việc hoàn thành cho kết quả đúng trên số công việc hoàn thành của máy trạm.
1.3.3.3Lập lịch chịu lỗi dựa trên độ tin cậy
Cơ bản, một hệ thống tính toán tình nguyện cho phép truy xuất rộng rãi từ công chúng, vì vậy một vấn đề đang tăng lên là bảo vệ hệ thống như thế nào từ sự phá hoại của nhiều người dùng ác ý đệ trình các kết quả giả mạo. Trong [17], các tác giả đã đưa ra một kĩ thuật lịch dựa trên tính chính xác, trong kĩ thuật này sử dụng sự dư thừa trong thực hiên công việc để gán đến một nhóm máy trạm, việc nhóm các máy trạm thực hiện theo ba bước sau: (1) Ước lượng tỉ lệ tin cậy của các nút trạm độc lập, (2) Sử dụng các tỉ lệ tin cậy của các máy trạm đã được ước lượng để tính toán tính khả thi chính xác (LOC) của các nhóm có thể. (3) Nhóm các máy trạm cho việc gán các nhiệm vụ dựa trên LOC để ước lượng số tối đa các đầu vào và tỉ lệ thành công hoàn thành nhiệm vụ. Trong [8], tác giả đã thảo luận về nhiều các kĩ thuật chịu đựng lỗi để bảo vệ các hệ thống chống lại những người tình nguyện ác ý như là biểu quyết, kiểm tra điểm, dò vết trở lại và danh sách đen. Đặc biệt, tác giả đã giới thiệu định nghĩa độ tin cậy và đề xuất một kĩ thuật chịu đựng lỗi dựa trên độ tin cậy mới. Trong kĩ thuật mới này, độ tin cậy của một kết quả được ước lượng như là sác xuất
điều kiện để mà kết quả chính xác. Thực thi của một nhiệm vụ sẽ được lập lại trên các máy tính nhiều lần cho đến khi kết quả cuối cùng đạt được độ tin cậy đủ cao. Nó chứng minh rằng kĩ thuật chịu đựng lỗi dựa trên độ tin cậy được đề xuất có thể thực thi nhanh hơn các kĩ thuật truyền thống khác như là biểu quyết và kiểm tra điểm bên dưới các yêu cầu về tỉ lệ lỗi là giống nhau.
Trong [10], tác giả đã mở rộng công việc của Sarmenta vào nhiều các trường hợp phổ biến bằng cách giải quyết các hệ thống tính toán song song chứa đựng nhiều các máy tính nguyện hơn số lượng các nhiệm vụ. Vì trong trường hợp này, một nhiệm vụ lên được làm lại trong nhiều các máy tính nguyện để sử dụng tốt các tài nguyên dư thừa. Nhận thấy rằng các kĩ thuật chịu lỗi dựa trên độ tin cậy đang tồn tại không hiệu quả cho các ứng dụng song song loại này bởi vì chúng không quan tâm đến trường hợp một nhiệm vụ giống nhau được thực hiện lại trên nhiều máy tình nguyện tại cùng một thời điểm. Dẫn đến kết quả, thuật toán dựa trên độ tin cậy đang tồn tại đạt được hiệu năng tính toán thấp trong giới hạn thời gian thực thi. Tác giả đã đề xuất một thuật toán lập lịch dựa trên độ ưu tiên theo khả năng thưc thi của các máy tình nguyện cho trường hợp này. Nó đã chứng minh được việc áp dụng thuật toán này đã làm tăng hiệu năng cho kĩ thuật chịu lỗi dựa trên độ tin cậy trong trường hợp có nhiều máy tình nguyện hơn số lượng nhiệm vụ.
Tuy nhiên, cần chú ý rằng kĩ thuật chịu đựng lỗi được đề xuất bởi Sarmenta và kĩ thuật lập lịch dựa trên độ ưu tiên của tác giả chưa quan tâm đến độ tin cậy của các máy trạm và của các nhiệm vụ đang được thực hiện, vì vậy thuật toán dựa trên độ tin cậy chưa đạt được hiệu năng tốt nhất trong giới hạn thời gian thực thi. Trong luận văn này, tôi tập trung vào việc kết hợp giữa khả năng tính toán và độ tin cậy của máy trạm với độ tin cậy của các nhiệm vụ đang được thực thi để cải thiện toàn bộ hiệu năng trong giới hạn thời gian thực thi trong khi vẫn đảm bảo được yêu cầu độ tin cậy và đề xuất ra một thuật toán lập lịch hiệu quả được gọi là “Lập lịch Round Robin dựa trên độ ưu tiên về độ tin cậy và khả năng thực hiện”. Tính hiệu quả của thuật toán sẽ được xác minh bởi các mô phỏng ở phần 5.
Hiện tại để đánh giá độ tin cậy của các thuật toán lập lịch tình nguyện có thể sử
dụng các bộ mô phỏng như SIMBA, SIMBOINC nhưng do quá trình liên hệ với các tác giả để xin mã nguồn chương trình các bộ mô phỏng có khó khăn và chỉ nhận được mã nguồn bộ mô phỏng SIMBA của tác giả Derrick Kondo sau khi đã sử dụng bộ mô phỏng VCSIM và xây dựng mô phỏng xong. Do thời gian không còn đủ để tôi thử nghiệm thêm các kết quả mô phỏng trên bộ mô phỏng SIMBA vì vây trong luận văn của mình tôi đã sử dụng bộ mô phỏng VCSIM để mô phỏng các thuật toán đã đề xuất.
1.3.4 So sánh với tính toán lưới và tính toán ngang hàng
1.3.4.1Tính toán lưới
Tính toán lưới và Tính toán tình nguyện giống nhau ở chỗ cùng sử dụng nhiều máy tính kết nối với nhau để thực hiện một công việc chung. Tuy nhiên, tính toán lưới không có một máy chủ tập trung mà được phân thành các cụm nhỏ, mỗi cụm nhỏ ấy có thể lại được phân chia nhỏ hơn và đơn vị nhỏ nhất là các PC thông thường, với nhiệm vụ là tính toán và trả về kết quả. Liên tưởng tính toán lưới với sự tham chiếu tới việc chia sẻ những tài nguyên tính toán bên trong và giữa các tổ chức.
- Mỗi tổ chức có thể đóng vai trò là người sản xuất hoặc khách hàng của tài nguyên (giống như trong lưới điện, các công ty điện năng có thể mua hoặc bán năng lượng từ các công ty khác, phù hợp với yêu cầu biến đổi).
- Các tổ chức chịu trách nhiệm qua lại, nếu 1 tổ chức cư xử không đúng, những tổ chức khác có thể từ chối hợp tác, chia sẻ tài nguyên với họ và ngược lại.
Như vậy, tính toán lưới có tính đến trách nhiệm và không có tính che giấu. Những người tham gia phải chịu trách nhiệm về các kết quả, các xung đột, sai sót… (điểm khác nhau cơ bản với tính toán tình nguyện).
1.3.4.2Tính toán ngang hàng
Điểm khác nhau cơ bản nhất là tính toán ngang hàng không hề có server. Nó chỉ đơn thuần gồm các PC kết nối với nhau và không có cái nào làm chủ. Trong đó, các file và dữ liệu khác được trao đổi giữa các “máy ngang hàng” (ví dụ như các PCs) mà không liên can gì tới máy chủ trung tâm. Nó khác với tính toán tình nguyện: