2.1.Ứng dụng dựa trên grid
Các ứng dụng của công nghệ thông tin có rất nhiều và đa dạng. Ở đây chúng ta chỉ phân loại một số loại ứng dụng lớn cần tới sự hỗ trợ của Grid. Bảng sau mô tả 5 loại ứng dụng chính dựa trên công nghệ mạng lưới tính toán
Table 1. Năm lớp ứng dụng Grid
Loại |
Ví dụ |
Đặc trưng |
Siêu tính toán phân tán |
Mô phỏng tương tác phân tán – DIS, Stellar dynamics, Ab initio chemistry |
Bài toán có độ phức tạp cao đòi hỏi khối lượng tính toán, bộ nhớ rất lớn |
High throughput |
Thiết kế mạch, Mã hoá |
Các tài nguyên rảng rỗi được tận dụng để tăng lưu lượng chung |
On demand |
Thiết bị y học, Ứng dụng tính toán mạng, Xác định quá trình hình thành mây |
Các tài nguyên ở xa tích hợp với tính toán cục bộ, với thời gian tính toán hạn chế |
Data intensive |
Thăm dò bầu trời, Dữ liệu vật lý, hoá, sinh, Đồng hoá dữ liệu, Khai khoáng dữ liệu |
Tổng hợp thông tin mới từ nhiều nguồn dữ liệu lớn |
Collaborative |
Thiết kế cộng tác, Đào tạo |
Hỗ trợ truyền thông và môi trường cộng tác giữa nhiều người dùng |
2.2. Các luồng ứng dụng trên Grid
Luồng ứng dụng là luồng thực hiện các công việc của ứng dụng đó. Còn luồng công việc là luồng thực thi của bản thân công việc đó thường đòi hỏi các tài nguyên cục bộ. Luồng ứng dụng là một trong những yếu tố quan trọng để xét xem ứng dụng có thích hợp với nền tảng Grid hay không. Có 3 dạng khác nhau của luồng ứng dụng:
· Song song
· Tuần tự
· Mạng
Nếu một ứng dụng gồm nhiều công việc mà có thể thực hiện đồng thời thì khá phù hợp với mạng lưới Grid, đặc biệt trong trường hợp không có hoặc rất ít dữ liệu trao đổi giữa các công việc.
Từ một công việc ban đầu, một số công việc tiếp theo sẽ được thực thi trên các node trong Grif đã dành trước hoặc phân bổ động. Mỗi công việc này có thể nhận một bộ dữ liệu đủ để tính toán một cách độc lập, sau đó gửi trả lại kết quả. Kết quả trả về sẽ được thu thập và lưu vào một vị trí xác định bởi một công việc cuối cùng. Các dịch vụ Grid như môi giới hay lập lịch được dùng để khởi tạo công việc vào thời điểm, tại node phù hợp nhất (xem hình vẽ).
Figure 4 Luồng ứng dụng song song
Các ứng dụng có luồng công việc song song như thế rất thích hợp khi triển khai trên Grid. Ví dụ, đối với các ứng dụng mô phỏng mà thực hiện tính toán dựa vào giá trị thay đổi của tập tham số với một thuật toán cụ thể, Grid có thể phục vụ rất tốt.
Đối lập với luồng song song là luồng tuần tự, khi đó các công việc được thực thi một cách tuần tự theo thứ tự xác định. Công việc tiếp theo phải đợi cho đến khi công việc trước đó kết thúc (xem hình).
Figure 5. Luồng ứng dụng tuần tự
Trong trường hợp này, việc sử dụng Grid không đem lại hiệu quả về mặt thời gian nhưng có thể hiệu quả về việc sử dụng tài nguyên thích hợp.
Luồng công việc, trong đó một số công việc có thể thực hiện đồng thời, một số khác được thực thi theo thứ tự. Ví dụ như trong hình vẽ, công việc B và C có thể cùng thực thi nhưng chúng có trao đổi dữ liệu. Công việc F không thể bắt đầu khi B và C chưa kết thúc, trong khi công việc D sớm thực thi ngay khi B hoàn thành. Cuối cùng công việc G thu thập kết quả từ các công việc D,E,F khi các công việc này hoàn thành.
Figure 6. Luồng công việc mạng
Để dễ dàng quản lý các công việc của 1 ứng dụng, một công việc có thể được chia nhỏ thành các công việc nhỏ hơn - công việc con (sub-job) hoặc ngược lại, một số công việc con được gom lại thành 1 công việc. Qua đó, chúng ta có thể xây dựng một hệ thống phân cấp công việc. Điều này rất có lợi đối với các ứng dụng lớn khi điều khiển và quản lý công việc. Ví dụ như trong hình vẽ sau, nếu công việc B và C có quá nhiều dữ liệu cần trao đổi, hoặc các công việc A,B,C, và F cùng sử dụng một tài nguyên chung trên một node nào đó, thì chúng ta nên gộp các công việc này thành 1 công việc (vùng tô đậm trong hình)
Figure 7. Công việc và công việc con trong ứng dụng Grid
Một công việc có thể chia làm 3 loại: xử lý theo lô - batch, ứng dụng chuẩn, ứng dụng song song, và/hoặc tương tác.
Batch job là công việc xử lý theo khối trên các máy mainframe hoặc một chương trình được gọi qua giao diện dòng lệnh truyền thống. Một batch job thông thường có các đối số mô tả dữ liệu hoặc thiết lập tham số để chạy chương trình.
Tùy theo kích thước công việc và khả năng của mạng, một batch job có thể được gửi tới một node cùng với đối số và được gọi chạy từ xa. Batch job có thể là một script (REXX, Java, hoặc Perl), hoặc 1 chương trình không có hoặc rất ít yêu cầu ràng buộc về hệ điều hành, các thư viện, tập tin JAR, ...
Một batch job, nhất là nếu có ít ràng buộc về môi trường thực thi, rất phù hợp với môi trường tính toán mạng lưới.
Một công việc sử dụng một ứng dụng chuẩn nào đó (ví dụ như một ứng dụng giải mã video, ứng dụng tính toán (Mathlab, Maple), vv, xem phần 12 cuốn “Introduction to Grid Computing”) với dữ liệu vào và tập tham số xác định thông qua các giao diện dòng lệnh, giao diện đồ họa, hoặc giao diện lập trình. Các ứng dụng chuẩn thường là các ứng dụng stand-alone cần phải cài đặt vì thế không thể chuyển qua mạng để thực thi như các batch job. Ngoài ra, ứng dụng chuẩn còn đòi hỏi khắt khe về môi trường thực thi như phần cứng, hệ điều hành, bản quyền, ...
Một công việc của ứng dụng Grid có thể là một ứng dụng song song chạy trên một máy tính song song hay một cluster. Thường những ứng dụng song song này cần phải được cài đặt, quản lý trên một môi trường cụ thể. Các ứng dụng Grid có thể sử dụng ứng dụng song song này như một tài nguyên với nhiều ràng buộc.
2.3. Quả lý dữ liệu trên Grid
Một ứng dụng luôn cần dữ liệu vào để xử lý và nơi để xuất kết quả (dữ liệu ra). Trong môi trường Grid, ứng dụng bao gồm nhiều công việc, mỗi công việc lại cần đến luồng dữ liệu vào/ra. Vì thế, khi phát triển ứng dụng Grid, chúng ta không những phải quan tâm đến việc quản lý công việc mà còn phải quản lý tốt dữ liệu vào/ra cho từng công việc. Có hai cách quản lý dữ liệu trong môi trường Grid:
· Dữ liệu được lưu trên thiết bị lưu trữ có nối mạng và công việc sẽ truy xuất tới dữ liệu qua mạng khi cần
· Dữ liệu được chuyển tới các node thực thi trước khi công việc bắt đầu sao cho công việc truy xuất tới dữ liệu cục bộ.
Phần này sẽ mô tả các tiêu chuẩn, yếu tố liên quan tới việc quản lý dữ liệu cho ứng dụng Grid.
Bất cứ công việc đều cần dữ liệu vào để xử lý. Trong môi trường Grid, nguồn dữ liệu có thể khác nhau. Các câu hỏi sau cần được xác định rõ ràng:
Dữ liệu có thể dùng chung giữa các công việc, hoặc được quản lý bởi các hệ thống sẵn có. Vì vậy, chúng ta cần xem xét các yếu tố hạn chế truy xuất dữ liệu như các chính sách, quyền truy nhập tới các tập tin hoặc cơ sở dữ liệu. Ngoài ra phải đảm bảo dữ liệu là hữu hiệu khi công việc cần tới, cần có cơ chế khoá để tránh xung đột hay khoá chết. Hơn nữa để tăng hiệu năng của ứng dụng, việc phân bổ dữ liệu cho các công việc cần hợp lý tránh tắc nghẽn.
Trong quá trình thiết kế ứng dụng Grid, cần có chiến lược cấp phát bộ đệm dữ liệu cho từng công việc dựa vào các yếu tố sau:
Đây là yếu tố rất quan trọng ảnh hưởng tới chiến lược phân bổ hay thu gom dữ liệu. Tổng kích thước dữ liệu bao gồm toàn bộ dữ liệu vào/ra của tất cả công việc. Kích thước dữ liệu cùng với không gian lưu trữ tạm thời sẽ giúp chúng ta xác định vị trí sao chép dữ liệu thích hợp.
Băng thông mạng là một yếu tố phần cứng ảnh hưởng nhiều tới tốc độ thực thi của ứng dụng Grid. Ngoài ra băng thông mạng còn bị chia sẻ với các ứng dụng khác, nên đây là một trong các yếu tố khó lường trước. Nhiều kỹ thuật nhằm tăng tốc mạng đã được sử dụng nhiếu như kỹ thuật nén dữ liệu, dự báo thời tiết mạng, …
Sau khi xem xét các yếu tố trên, bây giờ chúng ta xác định vị trí lưu trữ (sao chép) dữ liệu. Các câu hỏi sau cần cân nhắc:
Đồ thị phân bổ dữ liệu
Đồ thị phân bổ dữ liệu liệt kê toàn bộ các node trong Grid theo trục hoành và danh sách các công việc theo trục tung. Dữ liệu được phân bố tại các ô giao nhau. Hình vẽ sau minh hoạ một ví dụ của đồ thị phân bổ dữ liệu
2.4. Các kỹ thuật và giải pháp quản lý dữ liệu
Một mạng lưới tính toán nhằm tăng hiệu năng của ứng dụng bằng cách song song hoá. Dẫn đến một công việc bị chia nhỏ thành các công việc nhỏ hơn. Đối với dữ liệu, dữ liệu vào cho một công việc lớn cũng có thể bị chia nhỏ cho các công việc con, gọi là quá trình tiền xử lý, sau khi các công việc con hoàn tất, dữ liệu sẽ được thu gom lại, gọi là quá trình hậu xử lý.
Figure 9. Dữ liệu vào và ra phân chia độc lập
Figure 10. Dữ liệu vào cố định, dữ liệu ra phân chia
Figure 11. Toàn bộ công việc cùng truy xuất dữ liệu vào và lưu kết quả lên một tập dữ liệu
(Còn tiếp)
» Tin mới nhất:
» Các tin khác: