Các yêu cầu đối với lập trình trên lưới

Một phần của tài liệu Mô hình tính toán lưới và ứng dụng giải một số bài toán trên đồ thị (Trang 63 - 65)

CHƢƠNG 1 GIỚI THIỆU VỀ CƠNG NGHỆ TÍNH TỐN LƢỚI

2.4 Các vấn đề khi lập trình trên lưới

2.4.1 Các yêu cầu đối với lập trình trên lưới

2.4.1.1 Tính khả chuyển, tính khả thi và khả năng thích ứng

Các ngơn ngữ lập trình cấp cao hiện nay cho phép người dùng viết mã nguồn hồn tồn độc lập với bộ xử lý. Các mơ hình lập trình lưới cũng cần cĩ khả năng như vậy. Điều này đối với các máy ảo thơng dịch nghĩa là độc lập về kiến trúc, nhưng nĩ cũng cĩ nghĩa là khả năng sử dụng các đoạn mã nguồn hay dịch vụ ở nhiều nơi khác nhau để cung cấp thành một chức năng tương tự. Tính khả chuyển như vậy là một điều kiện tiên quyết cho việc sao chép các cấu hình động và khơng đồng nhất.

Việc sử dụng những đoạn mã nguồn và dịch vụ khác nhau nhưng cĩ chức năng tương tự nhau thể hiện tính cộng tác trong việc thi hành các mơ hình lập trình. Khái niệm về một kiến trúc lưới mở và cĩ tính mở rộng ngụ ý là một mơi trường phân tán cĩ thể hỗ trợ cho các giao thức, dịch vụ, giao diện lập trình ứng dụng và các cơng cụ phát triển phần mềm. Cuối cùng tính mang chuyển và tính cộng tác sẽ dẫn đến khả năng thích ứng. Một chương trình lưới phải cĩ khả năng thích ứng với các cấu hình khác nhau dựa trên nguồn tài nguyên sẵn cĩ. Điều này cĩ thể xảy ra vào thời điểm bắt đầu, hay tại thời điểm thực thi nguyên do sự thay đổi các yêu cầu của ứng dụng hay do khả

52

năng phục hồi lỗi. Khả năng thích ứng như vậy cĩ thể liên quan đến một bước khởi động lại đơn giản ở đâu đĩ hay là một sự tích hợp thật sự giữa tiến trình và dữ liệu.

2.4.1.2 Khả năng phát hiện tài nguyên

Tìm ra các tài nguyên hiện cĩ trên mạng là một phần quan trọng của tính tốn lưới. Mã nguồn của chương trình lưới sẽ chỉ ra rõ ràng những máy (host) thích hợp nào để chạy chương trình. Tuy nhiên bởi vì trên lưới chứa đựng nhiều dịch vụ cố định, nên chúng cũng vẫn phải cĩ khả năng tìm ra các dịch vụ này và các giao diện mà chúng hỗ trợ. Cách sử dụng các dịch vụ này phải cĩ khả năng tái lập trình và kết hợp lại theo một cách thống nhất. Vì thế mơi trường và cơng cụ lập trình phải chú ý tìm ra các dịch vụ hiện cĩ và cung cấp cho người dùng các cách thức tường minh hay ngầm ẩn để khai thác chúng trong quá trình xây dựng và triển khai các ứng dụng lưới.

2.4.1.3 Hiệu năng

Rõ ràng đối với nhiều ứng dụng lưới, vấn đề hiệu năng là điều rất đáng quan tâm. Bởi vì lưới sử dụng băng thơng hỗn tạp và các hệ thống phân cấp ẩn cho nên điều này gây khĩ khăn cho việc đạt được hiệu năng tốt nhất và cách sử dụng hiệu quả các nguồn tài nguyên.

Tuy nhiên đối với nhiều ứng dụng, để đạt hiệu năng đáng tin cậy cũng là một vấn đề khá quan trọng. Một mơi trường động và khơng đồng nhất cĩ thể tạo ra nhiều khả năng thực thi khác nhau mà cĩ thể sẽ khơng được chấp nhận trong nhiều tình huống. Vì thế trong mơi trường chia sẽ, chất lượng dịch vụ sẽ trở nên càng cần thiết nhằm đạt được hiệu năng đáng tin cậy trên một cấu hình tài nguyên đã cho. Trong khi người dùng cĩ thể yêu cầu mơ hình theo một hiệu năng nào đĩ, tuy nhiên sẽ hợp lý hơn nếu hiệu năng cung cấp nằm bên trong một khoảng giới hạn nào đĩ.

2.4.1.4 Dung lỗi

Việc cần cĩ nhiều cấp độ dung lỗi trong mơi trường lưới là hồn tồn cần thiết. Điều này đặc biệt đúng khi các ứng dụng khởi tạo hàng ngàn các cơng việc độc lập tương tự với nhau trên hàng ngàn máy trạm (host). Rõ ràng khi số lượng các tài nguyên

53

tham gia tính tốn ngày càng tăng thì cũng làm gia tăng xác suất bị hỏng. Các chương trình lưới phải cĩ khả năng kiểm tra các lỗi khi đang thực thi, và bên cạnh đĩ cũng phải cung cấp khả năng phục hồi và phản ứng khi cĩ lỗi xảy ra ở cấp độ chương trình. Tại thời điểm đĩ các cơng cụ cũng phải bảo đảm cho các phép tính cũng được thực thi ở cấp độ tối thiểu khi cĩ lỗi xảy ra.

2.4.1.5 Bảo mật

Chúng ta sẽ cịn tiếp tục chứng kiến sự phát triển của tính tốn lưới trên nhiều domain chia sẻ như là các mạng. Trong khi việc cung cấp một chức năng chứng thực mạnh giữa hai site là cực kỳ quan trọng, thì bên cạnh đĩ việc quản lý chương trình trên nhiều site cũng là điều khơng đơn giản. Vì thế, một phương pháp bảo mật cĩ cấp khả năng xác thực người dùng phải được tích hợp vào trong các mơ hình lập trình lưới.

2.4.1.6 Các siêu mơ hình

Phương pháp lập trình truyền thống với các ngơn ngữ lập trình cổ điển dựa vào trình biên dịch để thực hiện việc chuyển đổi giữa 2 mơ hình lập trình, như là giữa ngơn ngữ cấp cao C hay Fortran, với tập các chỉ thị phần cứng thể hiện bởi việc thực thi tuần tự các hàm trên dữ liệu trong bộ nhớ. Quá trình chuyển đổi này cĩ thể là sự xây dựng của một số các mơ hình liên quan đến ngữ nghĩa của mã nguồn và sự áp dụng một số tính năng cải tiến như tối ưu, dọn dẹp bộ nhớ, và kiểm tra phạm vi. Sự kết hợp các siêu mơ hình tương tự sẽ gĩp phần xây dựng chương trình lưới.

Một phần của tài liệu Mô hình tính toán lưới và ứng dụng giải một số bài toán trên đồ thị (Trang 63 - 65)