Tải bản đầy đủ (.doc) (27 trang)

Tiểu luận môn tính toán lưới Alchemi.NET Framework trong Tính toán lưới

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (698 KB, 27 trang )

Đại học Quốc Gia Thành phố Hồ Chí Minh
Trường Đại học Công nghệ thông tin
o0o
Bài báo cáo môn:
Tính toán lưới
Đề tài:
Alchemi.NET Framework
trong Tính toán lưới
GVHD : TS. Nguyễn Phi Khứ
Học viên : Bùi Anh Kiệt
MSHV : CH1101018
Tp. Hồ Chí Minh – Ngày 24 tháng 7 năm 2013
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Lời mở đầu
Hiện nay Công nghệ thông tin đã và đang phát triển vô cung nhanh chóng và vai
trò của nó trở nên vô cùng quan trọng khi xuất hiện trong hầu hết các lĩnh vực
trong đời sống xã hội. Các ứng dụng công nghệ thông tin ngày càng trở nên phong
phú, và nó đang trở thành một trong những công cụ để đánh giá mức độ phát triển
của một quốc gia, một vùng kinh tế. Từ khi internet xuất hiện, Công nghệ thông
tin như tìm thấy cho mình điều kiện để phát triển mạnh mẽ nhất. Quả thật vậy,
hiện nay Công nghệ thông tin kết hợp với internet đã trở thành ‘thành viên” không
thể thiếu trong phần lớn các lĩnh vực vì đó chính là công cụ nhanh nhất đưa con
người tiếp cận với thế giới bên ngoài.
Song song với việc phát triển theo chiều rộng về phạm vi ứng dụng, Công nghệ
thông tin cũng phát triển bản thân nó theo chiều sâu. Có rất nhiều vấn đề phát sinh
trong quá trình phát triển trong và việc giải quyết vấn đề tính toán cho những bài
toán lớn, độ phức tạp cao xẩy ra trong đời sống là một thách thức từ những ngày
đầu phát triển. Với một bài toán phức tạp, chi phí bỏ ra để thực hiện là vô cùng lớn
và có thể mất hàng chục năm một máy tính bình thường mới có thể giải quyết
được. Đó là lý do thôi thúc các nhà phát triển cho ra đời các siêu máy tính. Tuy


nhiên các siêu máy tính cũng có giới hạn của nó vi chi phí đầu tư quá lớn và thực
sự cũng không đáp ứng được nhu cầu. Vì lí do đó, ý tưởng về việc tận dụng máy
tính để bàn trên toàn thế giới để hình thành nên một “siêu máy tính ảo” đã được
thực hiện và đó chính là điều kiện ban đầu để hình thành những khái niệm mới:
“Điện toán đám mây” (Cloud computing) hay “Tính toán lưới” (Grid computing).
Trong bài viết này, tác giả đề cập đến Alchemi, một .NET framework mà
Microsoft cung cấp cho người dùng để phát triển các ứng dụng với Tính toán lưới.
Bài viết là một trích dẫn của một bài báo khoa học và từ đó đưa ra những nhận xét
và đánh giá về Alchemi và khả năng ứng dụng nó trong thực tế hiện nay.
Học viên: Bùi Anh Kiệt – CH1101018 2
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Mục lục
Lời mở đầu 2
Mục lục 3
1 Giới thiệu 4
2 Tóm tắt nội dung bài báo 4
2.1 Tổng quan 4
2.2 Kiến trúc 6
2.3 Thiết kế và thực thi 11
2.4 Alchemi API: Mô hình lập trình luồng trên lưới 16
2.5 Đánh giá hiệu quả thực hiện 18
2.6 Tổng kết và công việc tương lai 22
3 Đánh giá bài báo 23
4 Kết luận 25
5 Tài liệu tham khảo 26
Nhận xét và đánh giá 27
Học viên: Bùi Anh Kiệt – CH1101018 3
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới


1 Giới thiệu
Sự phát triển nhanh và mạnh mẽ của công nghệ thông tin đã thúc đẩy những người
phát triển về một siêu máy tính với những tính năng cực kì mạnh mẽ có thể giải
quyết được những bài toán vô cùng lớn. Tuy nhiên việc hình thành nên những cỗ
máy như vậy thường mất rất nhiều chi phí đầu tư, và thường không hiệu quả vì số
lượng các bài toán lớn không nhiều và không cần thực hiện liên tục. Vì lý do đó, ý
tưởng về việc tạo nên một siêu máy tính ảo từ các máy tính để bàn thông thường
thông qua mạng internet là một ý tưởng xuất sắc và có ý nghĩa thực tiễn lớn.
Chính từ ý tưởng đó mà đã xuất hiện 2 vấn đề mới trong lĩnh vực công nghệ thông
tin là Điện toán đám mây và Tính toán lưới.
Ở chương tiếp theo (chương 2) là một trích dẫn một bài báo khoa học viết về một
công cụ hổ trợ cho những người phát triển phần mềm thuộc lĩnh vực tính toán lưới
được trình bày bởi nhóm tác giả đến từ trường đại học Melbourne, Úc. Nội dung
bài báo tập trung vào Alchemi, một framework dựa trên nền tảng .NET hổ trợ
người dùng xây dựng các phần mền ứng dụng và phần mềm trung gian trên tính
toán lưới.
2 Tóm tắt nội dung bài báo
2.1 Tổng quan
Ý tưởng thực hiện của Alchemi rất hứa hẹn khi mà nó sử dụng một mạng nhiều
máy tính độc lập như thể một hệ thống lớn song song, hay có thể xem như một
siêu máy tính ảo để giải quyết những vấn đề có quy mô lớn trong khoa học, công
nghệ và thương mại. Với việc sở hữu máy tính trên toàn thế giới tăng rất nhanh
theo cấp số mũ, các hệ thống mạng nội bộ, kết nối internet đã đưa đến một khái
niệm mới, đó là tính toán lưới.
Học viên: Bùi Anh Kiệt – CH1101018 4
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Tính toán lưới đã thu hút được sự chú ý mạnh mẽ và lan tỏa nhanh chóng trong
lĩnh vực thương mại. Một cơ sở hạ tầng tính toán lưới dựa trên cơ sở của
Microsoft Windows sẽ đóng vai trò quan trọng trong việc mở rộng như một ngành

công nghiệp lưới bởi vì Windows được sử dụng rất nhiều trong thương mại hiện
nay. Điều này kích thích sử dụng những khả năng của máy tính để bàn chưa được
dùng đến để tạo ra một siêu máy tính ảo nhưng lại không tốn chi phí. Tuy nhiên có
một khó khăn đó là thiếu các chương trình phần mềm dựa trên nên tảng lưới ở thời
điểm hiện tại. Để giải quyết vấn đề này, chúng tôi phải phát triển một hệ thống
tính toán lưới dựa trên nền tảng Windows gọi là Alchemi, hiện thực dựa trên nền
tảng của Microsoft .NET.
Khái niệm về tính toán lưới trông có vẻ rất đơn giản nhưng việc hiện thực nó trong
thực tế lại đối diện với rất nhiều thách thức. Những vấn đề trọng tâm phải đối mặt
đó là tính bảo mật, tính không đồng nhất, tính tin cậy, kết cấu các ứng dụng, lập
lịch và quản lý tài nguyên. Microsoft .NET framework đã cung cấp cho chúng ta
một hệ thống công cụ rất mạnh mẽ và đó chính là đòn bẫy thúc đẩy giải quyết
những vấn đề về tính toán lưới. Với khả năng hổ trợ điều khiển thực thi đa luồng,
bảo mật, chương trình bất đồng bộ, ngắt kết nối truy cập dữ liệu, quản lý thực thi
và việc phát triển trên nhiều ngôn ngữ đã làm nên tiền đề cho việc phát triển
phong phú phần mềm trung gian tính toán lưới.
Alchemi được hình thành với sự cam kết thực hiện một cấu trúc lưới và sự phát
triển phần mềm lưới đơn giản hết sức có thể mà không đánh mất tính mềm dẻo,
tính dể hiện thực, tính tin cậy và khả năng mở rộng. Các tính năng cơ bản được hổ
trợ bởi Alchemi gồm:
• Thiết lập một mạng gồm một cụm máy tính để bàn dựa trên internet nhưng
không chia sẽ tập tin hệ thống
• Thiết lập một mạng lưới có thứ bậc, cộng tác gồm những cụm máy tính
• Thực thi chuyên dụng hay không chuyên dụng bởi các cụm và các nút riêng
lẻ
Học viên: Bùi Anh Kiệt – CH1101018 5
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

• Mô hình lập trình luồng hướng đối tượng trên lưới
Hình 1 – Kiến trúc phân lớp tích hợp tài nguyên Windows và Unix phân tán

2.2 Kiến trúc
Alchemi cho phép mô hình lập trình song song, với thành phần trung tâm sẽ phân
phối công việc cho các đơn vị độc lập thực hiện và quản lý các đơn vị độc lập này.
Đơn vị nhỏ nhất trong quá trình thực hiện song song này là luồng (thread) trên
lưới, một đơn vị có chức năng tương tự như một luồng của các đối tượng bình
thường khác. Một ứng dụng lưới được định nghĩa đơn giản là một ứng dụng mà
được thực thi trên lưới bao gồm một số luồng trên lưới. Các ứng dụng lưới được
trình bày bởi các nhà phát triển ứng dụng thông qua cơ chế hướng đối tượng
Alchemi .NET API.
Học viên: Bùi Anh Kiệt – CH1101018 6
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

2.2.1 Các thành phần
Achemi cung cấp 4 thành phần phân tán như minh họa trong hình 2 bên dưới, thiết
kế vận hành dưới 3 mẫu sử dụng.
Hình 2 – Kiến trúc Alchemi và mối tương tác giữa các thành phần
Manager:
Manager có trách nhiệm quản lý việc thực thi các ứng dụng trên lưới và cung cấp
các dịch vụ kết hợp với quản lý quá trình thực thi luồng. Các Executor đăng kí với
Manager khi chúng đã sẵn sàng để thực thi. Luồng được nhận từ Owner được đặt
trong kho chứa luồng và lên lịch thực thi trên nhiều Executor đã sẵn sàng. Độ ưu
tiên của mỗi luồng có thể được chỉ định tường minh trong lúc khởi tạo nên luồng
trong Owner, nhưng chỉ được gán cho độ ưu tiên cao nhất mặc định là khi không
có thêm luồng nào được chỉ định. Luồng được lập lịch theo cơ chế FCFS (First
Học viên: Bùi Anh Kiệt – CH1101018 7
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Come First Server). Executor sẽ trả kết quả thực thi mỗi luồng về cho Manager và
Manager sẽ chuyển kết quả này về cho các Owner tương ứng.
Executor:

Executor nhận các luồng từ Manager và thực thi chúng. Một Executor có thể được
cấu hình chuyên dụng, mang ý nghĩa là chúng được quản lý bởi Manager, hoặc có
cấu hình không chuyên dụng với ý nghĩa là tài nguyên được quản lý bởi trình tiết
kiệm điện hay bởi người sử dụng. Đối với quá trình thực thi không chuyên dụng,
có một sự giao tiếp giữa Executor và Manager. Khi mà giao tiếp 2 chiều được thực
hiện và sự thực thi chuyên dụng được Executor thể hiện dưới dạng một giao diện
(IExecutor interface) vì thế mà Manager có thể giao tiếp trực tiếp. Trong tình
huống này, Manager sẽ triệu gọi Executor trực tiếp để thực thi luồng. Vì thế mà
quá trình thực thi của Alchemi cung cấp cùng lúc 2 tiện ích sau:
• Quản lý tài nguyên mềm dẻo: như việc quản lý tập trung các quá trình thực
thi chuyên dụng và việc quản lý không tập trung các quá trình thực thi
không chuyên dụng
• Triển khai một cách mềm dẻo trong mạng, thành phần có thể được triển
khai như các quá trình thực thi không chuyên dụng giống như quá trình
giao tiếp 2 chiều là không mong đợi hay không thể thực hiện.
Vì thế, quá trình thực thi chuyên dụng là thích hợp hơn khi mà Manager và
Executor ở cùng một mạng nội bộ và các quá trình thực thi không chuyên dụng
thích hợp khi mà Manager và Executor được liên kết thông qua internet.
Owner:
Các ứng dụng lưới hình thành và sử dụng các API Alchemi được thực thi trên các
thành phần Owner. Owner cung cấp một giao diện với sự mong đợi về các ứng
dụng lưới giữa người phát triển ứng dụng và lưới. Do đo, chúng sở hữu ứng dụng
và cung cấp các dịch vụ kết hợp với quyền sở hữu của một ứng dụng và các thành
phần cấu tạo của luồng. Owner đưa các luồng đến cho Manager và thu thập các
Học viên: Bùi Anh Kiệt – CH1101018 8
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

luồng đã hoàn tất được sinh ra từ các ứng dụng của người phát triển thông qua các
Alchemi API.
Cross-Platform Manager:

Là một thành phần con tùy chọn của Manager, là một giao diện dịch vụ web thông
dụng trình bày một phần tính năng của Manager để làm cho Alchemi có thể thực
hiện việc quản lý các luồng thực thi của các nền tảng độc lập trên lưới. Các công
việc được đưa lên Cross-Platform Manager được dịch sang một hình thức mà có
thể thực hiện được bởi Manager (như là luồng lưới), rồi được lập lịch để thực thi
như thường lệ. Vậy nên để mà hổ trợ tính năng giải quyết các ứng dụng trên lưới,
Cross-Platform Manager cho phép các phần mềm trung gian trên lưới liên kết với
nhau và cũng là bước tạo nên sức mạnh để Alchemi chạy trên bất kì một nền tảng
nào có hổ trợ dịch vụ web.
2.2.2 Cấu hình hệ thống
Với các thành phần nêu ở trên cho phép Alchemi tận dụng để tạo ra cá cấu hình
khác nhau như: hệ thống lưới các cụm máy tính để bàn, hệ thống lưới các cụm, hệ
thống lưới tổng thể các nền tảng khác nhau.
Cụm các máy tính để bàn:
Đây là ngữ cảnh triển khai cơ bản – một cụm gồm một Manager và nhiều
Executor được cấu hình và kết nối đến Manager. Một hoặc nhiều Owner có thể
thực thi các ứng dụng trên một cụm bởi việc kết nối đến Manager. Khi một môi
trường thích hợp cho việc triển khai trên mạng nội bộ thực hiện như trên mạng
internet. Hoạt động của Manager, Executor và Owner trog một cụm được mô tả
như ở phần trên.
Đa cụm:
Môi trường đa cụm được tạo thành bởi kết nối các Manager theo một trật tự. Như
một môi trường đơn cụm bất kì, số lượng Executor và Owner nào đều có thể liên
Học viên: Bùi Anh Kiệt – CH1101018 9
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

kết đến một Manager ở bất cứ thứ bậc và trật tự nào. Một Executor và Owner
trong môi trường đa cụm liên kết đến một Manager trong cùng kiểu mẫu như trong
một cụm và các hoạt động tương ứng giống như trong một cụm.
Hình 3 – Triển khai một cụm

Vấn đề cốt lõi trong việc thực hiện đa cụm trong kiến trúc Alchemi là tác nhân mà
một Manager đối xử giống như từ một Executor đến một Manager khi Manager
hiện thực giao diện của Executor. Một Manager ở mỗi cấp độ ngoại trừ cấp độ cao
nhất trong hệ thống đều được cấu hình để kết nối đến một tầng cao hơn như một
Manager tức thì và được điều khiển bởi các Manager có thứ bậc cao hơn như một
Executor. Vậy nên môi trường này thích hợp hơn khi triển khai trên internet.
Hoạt động của một Manager trong môi trường đa cụm kết hợp với các hành vi của
một Executor được miêu tả như sau:
Một khi Owner đưa lên lưới một ứng dụng đến Manager, mỗi Manager có một
mạng lưới nội bộ với các luồng chờ được thực thi. Như đã thảo luận, các luồng
được gán cho một độ ưu tiên cao nhất có thể và các luồng được lập lịch để thực thi
bởi Manager, rồi chúng được điều khiển như một Executor bởi Manager ở cấp cao
hơn. Trong trường hợp này, sau khi nhận một luồng từ Manager cấp cao hơn,
Owner được lập lịch bởi các Manager tức thời với độ ưu tiên thấp hơn 1 và được
thực thi một cách bình thường bởi Executor của Manager nội bộ.
Học viên: Bùi Anh Kiệt – CH1101018 10
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Hình 4 – Mô hình đa cụm và môi trường lưới tổng thể
Cross-Platform Grid:
Cross-Platform Manager có thể được dùng để cơ cấu một mạng lưới theo hình
thức một mạng lưới tổng thể. Một thành phần của các phần mềm trung gian trên
mạng lưới như một người môi giới có thể dùng dịch vụ web Cross-Platform
Manager để thực hiện các ứng dụng đa nền tảng trên một nút Alchemi giống như
các tài nguyên trên lưới sử dụng các kĩ thuật khác như là Globus.
2.3 Thiết kế và thực thi
2.3.1 Tổng quan
.NET framework cung cấp cho chúng ta 2 cơ chế thực thi các miền ứng ứng dụng,
đó là cơ chế Remoting (điều khiển) và Web service (dịch vụ web).
.NET remoting cho phép một đối tượng .NET được điều khiển và trình bày tính

năng của nó trong các miền ứng dụng. Remoting được dùng trong việc giao tiếp
giữa 4 thành phần cấu hình nên mạng lưới Alchemi khi nó cho phép sự tương tác
trao đổi ở tầng thấp giữa các đối tượng .NET với chi phí phát sinh thấp.
Học viên: Bùi Anh Kiệt – CH1101018 11
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Các đối tượng điều khiển sử dụng .NET Remoting trong 4 thành phần của
Alchemi là Manager, Executor, Owner và Cross-Platform Manager là các thể hiện
của GManager, GExecutor GApplication và CrossPlatformManager.
GManager, GExecutor, GApplication được dẫn xuất từ GNode, lớp được hiện
thực với chức năng tổng quát cho việc điều khiển các đối tượng và liên kết đến
một Manager điều khiển thông qua giao diện IManager.
Manager thực thi việc khởi tạo một thể hiện của lớp GManager, và thể hiện đó
luôn điều khiển và trình bày một giao diện công khai là IManager.
Executor thực thi việc hình thành một thể hiện của lớp GExecutor. Đối với hình
thức thực thi không chuyên dụng, có một sự giao tiếp một chiều từ Executor tới
Manager. Giao tiếp 2 chiều được xây dựng cho hình thức thực thi chuyên dụng,
GExecutor được điều khiển và trình bày trên giao diên IExecutor và vì thế mà
Manager có thể giao tiếp trực tiếp đến. Quá trình cài đặt Executor cung cấp một
tùy chọn để cài đặt một trình tiết kiệm màn hình, và tùy chọn đó khởi tạo sự thực
thi không chuyên dụng khi được kích hoạt bởi hệ điều hành.
Thành phần Owner – nằm bên trong thể hiện GApplication được tạo ra thông qua
API của Alchemi – giao tiếp với Manager theo cùng một cách như GExecutor.
Trong khi phương thức giao tiếp 2 chiều hiện tai chưa được thực thi, kiến trúc
phục vụ cho nó là hình thức hoạt động của giao diện IOwner.
Cross-Platforn Manager web service là một lớp giao tiếp nhỏ nằm trong
GManager và sử dụng các ứng dụng các luồng nội bộ để thể hiện các tác vụ và
công việc thông qua giao diện công khai ICrossPlatformManager.
Học viên: Bùi Anh Kiệt – CH1101018 12
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới


Hình 5 – Các lớp chính và mối quan hệ giữa chúng
2.3.2 Vòng đời của một ứng dụng trên lưới
Để phát triển và thực thi một ứng dụng trên lưới, người phát triển tạo ra một lớp
luồng tùy chỉnh trên lưới dẫn xuất từ lớp ảo GThread. Một thể hiện của đối tượng
GApplication được tạo ra và phụ thuộc nào đòi hỏi bởi ứng dụng cũng được thêm
vào DependencyCollection của nó. Các thể hiện của lớp dẫn xuất GThread rồi
cũng được thêm vào ThreadCollection của GApplication đó.
GApplication khởi tạo và gửi dữ liệu có liên quan đên Manager, và ở đó dữ liệu đó
tồn tại để cho các luồng lập lịch thực thi. Ứng dụng và trạng thái luồng được lưu
trữ trong hệ quản trị CSDL SQL Server/MSDE.
Học viên: Bùi Anh Kiệt – CH1101018 13
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Các Executor không chuyên dụng quay vòng thực hiện cho đến khi chỉ còn một
luồng. Các Executor chuyên dụng thì trực tiếp được cung cấp một luồng thực thi
bởi Manager.
Hình 6 - Đơn giản hóa tương tác giữa các nút Owner và Manager
Vòng đời của một ứng dụng lưới được thể hiện trong hình 6 và 7, chúng cũng thể
hiện sự đơn giản hóa giữa các nút Owner và Executor một cách tách biệt với
Manager.
Học viên: Bùi Anh Kiệt – CH1101018 14
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Sau khi truyền xong các luồng tới Manager để thực thi, GApplication thăm dò
xem Manager đã kết thúc quá trình thực thi các luồng của nó. Một ủy nhiệm
(delegate) GThreadFinish được người dùng định nghĩa được gọi chỉ định cho việc
thực thi thành công mỗi luồng và một khi tất cả các luồng hoàn thành thì ủy
nhiệm GApplicationFinish được gọi.
Hình 7 – Đơn giản hóa quá trình tương tác giữa nút Executor và Manager

Học viên: Bùi Anh Kiệt – CH1101018 15
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

2.4 Alchemi API: Mô hình lập trình luồng trên lưới
2.4.1 Giới thiệu
Mô hình luồng trên lưới:
Alchemi đơn giản hóa quá trình phát triển phần mềm trên lưới bằng cách cung cấp
một mô hình lập trình hướng đối tượng và hướng theo phương pháp lập trình
nhiều luồng (multi-thread) truyền thống. Đơn vị cơ bản thực thi song song là
luồng trên lưới trong đó có một ứng dụng trên lưới.
Mô hình công việc trên lưới:
Hình thức thực thi truyền thống trên lưới cung cấp một hình thức ảo cao cấp cho
máy ảo để ở đó đơn vị thực thi song song là luồng. Mặc dù khi hiện thực một phần
mềm mô hình công việc trên lưới (grid job) có liên quan đến các luồng, chiều
hướng này có thể trở nên phức tạp và không mềm dẻo, kiến trúc Alchemi hổ trợ
điều này thông qua giao diện web service (dịch vụ web) bởi những lí do sau:
• Khởi động các ứng dụng tồn tại trên lưới
• Hoạt động giao tiếp bên trong giữa các phần mềm trung gian đa nền tảng
trên lưới có thể gây ra động lực của Alchemi.
2.4.2 Tổng quan về quá trình phát triển ứng dụng trên lưới với
Alchemi
Hai lớp trung tâm trong Alchemi .NET API là GThread và GApplication lần lượt
thể hiện cho luồng trên lưới và ứng dụng trên lưới. Về cơ bản, có 2 phần trong ứng
dụng trên lưới và mỗi phần là trung tâm cho mỗi lớp tương ứng:
• Mã code để thực thi điều khiển (luồng trên lưới và những phần phụ thuộc
của nó)
• Mã code để thực thi nội bộ (ứng dụng trên lưới)
Một luồng điều chỉnh được hiện thực bằng việc viết một lớp dẫn xuất từ lớp
GThread, hiện thực lại hàm void Start(), và đánh dấu nó bằng thuộc tính
Học viên: Bùi Anh Kiệt – CH1101018 16

Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Serializable. Mã code thực thi điều khiển được định nghĩa trong phần hiện thực lại
phương thức Start(). Lớp dẫn xuất GThread và bất kì phần phụ thuộc nào đều phải
được biên dịch một hay nhiều mã ngôn ngữ máy (assembly) .NET. Ví dụ sau trình
bày đơn giản về một luồng trên lưới thực hiện phép nhân 2 số nguyên.





 !"#!

$%
$%&
$%'
'

%'(
(
 !)*+

%,
%&,
(
$!$!)+

%',%-%&
(
(

(
Học viên: Bùi Anh Kiệt – CH1101018 17
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Ứng dụng trên lưới bản thân nó có thể là bất cứ một dạng ứng dụng .NET nào. Nó
tạo ra các thể hiện của luồng điều chỉnh trên lưới, thực thi chúng trên lưới và sử
dụng kết quả của mỗi luồng.
2.5 Đánh giá hiệu quả thực hiện
2.5.1 Hệ thống lưới Alchemi đứng một mình
2.5.1.1 Môi trường nền tảng
Testbed là một cụm Alchemi gồm 6 Executors (Đối với máy Pentium III, 1.7GHz,
512MB ram chạy trên Windows 2000 Professional). Mỗi một Executor của một
máy này được chỉ định như một Manager.
2.5.1.2 Ứng dụng kiểm tra và Phương thức kiểm tra
Ứng dụng kiểm tra là sự tính toán giá trị số Pi đến n chữ số. Thuật toán đã dùng
cho phép tính toán đến chữ số thứ p mà không cần biết chữ số trước đó là gì. Ứng
dụng này thừa hưởng mô hình luồng trên lưới Alchemi. Quá trình đánh giá thể
hiện một dãy khối lượng công việc với 6 Executor được khởi động. Khối lượng
công việc được chia ra cho mỗi luồng và mỗi luồng tính giá trị số Pi đến 50 chữ số
với số lượng luồng tương ứng với tổng số chữ số được tính. Thời gian thực thi
được đo cho đến khi chương trình tính toán hoàn tất bên phía Owner.
2.5.1.3 Kết quả
Hình bên dưới (hình 10) thể hiện mối tương quan giữa kích thước luồng (số lượng
các chữ số thập phân trong việc tính toán số Pi) và tổng thời gian của số lượng các
Executor thực thi.
Học viên: Bùi Anh Kiệt – CH1101018 18
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Hình 8 – Mối tương quan giữa kích thước luồng và thời gian thực thi trên một
cụm Alchemi với nhiều Executor

Tại thời điểm khối lượng công việc thấp (1000 chữ số), có một sự khác biệt nhỏ
giữa tổng thời gian thực thi và số lượng các Executor. Điều này giải thích bởi tác
nhân mà tổng thời gian thực thi là một sự cân đối tương quan cao cho đến tổng
thời gian thực thi thực tế. Tuy nhiên, một khi khối lượng công việc tăng cao, có
một sự khác biệt tương quan gần khi mà các chữ số cao của executor được sử
dụng. Ví dụ: với 2200 chữ số, thời gian thực thi với 6 executor (84 giây) gần bằng
1/5 tổng thời gian thực thi của một executor (428 giây). Điều này được giải thích
bởi tác nhân của việc xử lý khối lượng công việc cao hơn.
2.5.2 Mạng lưới toàn cầu đa nền tảng
2.5.2.1 Môi trường nền tảng
Một mạng lưới toàn cầu được dùng để đánh giá Alchemi trong môi trường đa nền
tảng, với đường truyền trên lưới đóng vai trò như Trung gian dịch vụ trên lưới
quản lý 5 nguồn tài nguyên trên lưới (trình bày trong Table 1). Một trong số các
tài nguyên trên lưới là cụm các nút Alchemi được mô tả trong phần trước trong khi
Học viên: Bùi Anh Kiệt – CH1101018 19
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

các nguồn tài nguyên khác chạy trên đường truyền toàn cầu. Cơ chế thực hiện việc
trung gian bằng đường truyền trên lưới được dùng trong hình thức kiểm tra này
đạt được yêu cầu của người sử dụng và đánh giá sự thích hợp của nhiều nguồn tài
nguyên cho mục đích này. Và rồi nó lên lịch các công việc cho nhiều tài nguyên
khác nhau để mà có thể thoả mãn các yêu cầu này.
Bảng 1. Các tài nguyên trên lưới
Tài nguyên Địa điểm Cấu hình Phần mềm
trung gian
Công việc
hoàn tất
maggie.cs.mu.oz.au
[cụm máy Windows]
ĐH

Melbourne
6*Intel Pentium
IV, 1.7 GHz
Alchemi 21
quidam.ucsd.edu
[cụm máy Linux]
ĐH
California,
San Diego
1 * AMD Althon
XP 2100+
Globus 16
belle.anu.edu.au
[cụm máy Linux]
ĐH QG Úc 4*Intel Xeon 2 Globus 22
koume.hpcc.jp AIST Nhật 4*Intel Xeon 2 Globus 18
brecca-2.vpac.org
[cụm máy Linux]
VPAC
Melbourne
4*Intel Xeon 2 Globus 23
2.5.2.2 Ứng dụng và phương thức kiểm tra
Dùng cho mục đích kiểm tra, chúng ta sử dụng một ứng dụng mà có tính năng tính
toán dựa trên giá trị của 2 tham số đầu vào. Tham số thứ nhất X, là một hàm tính
toán và tham số thứ 2 Y, thể hiện độ phức tạp tính toán được mong đợi trong nhiều
phút với một độ lệch mong đợi từ 0 đến 120 giây – điều này tạo nên một ảo giác
về sự biến đổi trong thời gian thực thi của nhiều công việc tương tự như một ứng
dụng thật. Một kế hoạch mô hình hoá cho ứng dụng này như một tham số ứng
dụng sử dụng tham số Nimrod-G đặc tả ngôn ngữ như được thể hiện ở đoạn code
bên dưới. Phần đầu tiên định nghĩa các tham số và phần thứ 2 định nghĩa các chuỗi

công việc thực hiện trong mỗi công việc. Như tham số thứ nhất X nhận giá trị từ 1
Học viên: Bùi Anh Kiệt – CH1101018 20
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

đến 100 trong bước 1, bản kế hoạch này tạo ra 100 công việc với giá trị từ 1 đến
100.
./!0 
1233443
5!23
.6!0 
6
.!!!
78!"
.9$!
!":7175
.0!9;
!":7;
!6
2.5.2.3 Kết quả
Kết quả của cuộc thực nghiệm thể hiện trong hình bên dưới. Tham số calc.$OS
hướng vào trung gian để chọn khả năng thực thi thích hợp dựa trên kiến trúc tài
nguyên trên lưới. Ví dụ, nếu tài nguyên lựa chọn là Windows/Intel, nó lựa chọn
calc.exe và sao chép vào các nốt trước khi thực thi. Nó giải thích khả năng thừa
hưởng tài nguyên Alchemi dựa trên nền tảng Windows với các tài nguyên dựa trên
nền tảng Linux chạy trên nền Globus.
Học viên: Bùi Anh Kiệt – CH1101018 21
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

Hình 9 – Biểu đồ thể hiện số công việc hoàn tất trong các tài nguyên khác nhau
cùng một thời điểm

2.6 Tổng kết và công việc tương lai
Chúng ta vừa thảo luận về một khung làm việc trên lưới dựa trên nền tảng .NET
mà cung cấp cơ chế thời gian chạy thực và môi trường lập trình hướng đối tượng
để dể dàng xây dựng các mạng lưới trên máy tính để bàn và phát triển các ứng
dụng trên lưới. Và sự tích hợp này vào trong mạng lưới tổng thể đa nền tảng có thể
thực hiện được với sự hổ trợ của các giao diện dịch vụ web và sử dụng các thành
phần trung gian.
Các nhà phát triển Alchemi đã lên kế hoạch để mở rộng Alchemi trong nhiều lĩnh
vực. Trước nhất là hổ trợ thêm tính năng giao tiếp trong một luồng thông qua các
API. Thứ hai, các nhà phát triển Alchemi đang làm việc để Alchemi có thể hổ trợ
cho việc giao tiếp ngang hàng (peer to peer) giữa các Manager trong nhiều cụm
Học viên: Bùi Anh Kiệt – CH1101018 22
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

với nhau. Thứ ba, các nhà phát triển muốn hổ trợ việc đặt các tài nguyên trên nền
tảng tiện ích theo tiêu chi kinh tế, chất lượng dịch vụ và thoả thuận cấp độ dịch vụ.
Thứ tư, các chiến lược chặc chẽ hướng đến tiêu chuẩn OGSI bằng việc mở rộng
giao diện quản lý công việc hiện tại. Công việc này giống như việc hiện thực các
phần mềm trung gian trên lưới trên nền tảng .NET tầng thấp (.NET-base low-
level) để mà thích ứng với các tiêu chuẩn trên lưới như OGSI. Cuối cùng, các nhà
phát triển lên kế hoạch cung cấp khả năng của dữ liệu trên lưới để làm cho các nhà
cung ứng tài nguyên sẵn sang chia sẽ tài nguyên của họ vào trong hệ thống tài
nguyên hình thành nên mạng lưới.
3 Đánh giá bài báo
Bài báo trên của nhóm tác giả đến từ trường đại học Melbourne, Úc đã giới thiệu
một cách khá đầy đủ về Alchemi – một framework dựa trên nền tảng .NET – và
cách tích hợp chúng vào trong thực tế tính toán lưới. Vì là một framework do
Microsoft cung cấp nên công việc của người phát triển phần mềm ứng dụng và
phần mềm trung gian trên Alchemi chỉ cần đơn giản nắm được những khái niệm,
cách thức hoạt động của mỗi thành phần trong Alchemi và cách hình thành nên

một ứng dụng có thể chạy được trên hệ thống lưới thật sự là có thể phát triển các
ứng dụng chạy tốt trên hệ thống lưới toàn cầu mà không cần quan tâm nhiều đến
cách thức khai thác tài nguyên trên lưới hay cách tập hợp chúng ra sao. Xét về
khía cạnh này thì bài báo trên đã làm được rất tốt, nhóm tác giả đã cung cấp cho
độc giả những khái niệm khá đầy đủ và cách thức giao tiếp giữa các thành phần
tạo nên Alchemi. Tuy nhiên, bài báo trên còn có một số hạn chế khách quan khi
đứng từ phía người đọc. Chi tiết cho những thành tựu và hạn chế của bài báo được
trình bày bên dưới.
Thành tựu:
• Tính đầy đủ, chi tiết: bài báo cung cấp một cách đầy đủ và chi tiết về các
thành phần cấu hình nên Alchemi. Các thành phần của Alchemi có những
Học viên: Bùi Anh Kiệt – CH1101018 23
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

đặc trưng gì, hoạt động của chúng ra sao và vai trò của chúng trong hệ
thống. Tất cả đều được mô tả đầy đủ để độc giả có thể hình dung được công
việc của từng thành phần và có thể dễ dàng khai thác khả năng của chúng
trong các ứng dụng của mình.
• Tính khoa học: Tính toán lưới là một khái niệm công nghệ mới trong lĩnh
vực Công nghệ thông tin (Tính toán lưới và Điện toán đám mây là hai công
nghệ được chú ý nhất thời điểm hiện tại trên lĩnh vực Công nghệ thông tin).
Vì vậy lựa chọn viết một bài báo về công nghệ mới đã mở đường cho nhiều
nghiên cứu khoa học về sau.
• Tính hiện thực: Như đã trình bày ở trên, Tính toán lưới là một trong hai giải
pháp Công nghệ thông tin trong thời đại mới. Hiện thực được giải pháp tính
toán lưới không chỉ đóng góp thêm vào cho khoa học công nghệ thông tin
một thành công mới mà còn được ứng dụng rộng rãi để giải quyết các vấn
đề còn tồn tại cần sự giúp sức của công nghệ thông tin kỹ thuật cao.
• Tính ứng dụng: bài viết không chỉ trình bày tổng quan về hoạt động của
Alchemi trong môi trường tính toán lưới mà còn trình bày ứng dụng cụ thể

để hình tượng hoá kiến thức thông qua thực tiễn
Hạn chế:
• Bài báo tập trung vào việc trình bày về hoạt động và tương tác của các
thành phần trong Alchemi mà thiếu đi trình bày về cách thức khai thác tài
nguyên trên lưới như thế nào. Những hoạt động nào trong quá trình chạy
một ứng dụng Alchemi sẽ có trách nhiệm (vai trò) quản lý các tài nguyên
hay tập hợp các tài nguyên.
• Ứng dụng trình bày trong bài báo còn mang nặng tính khoa học, phù hợp
với những người có kinh nghiệm trong việc nghiên cứu Alchemi. Đối với
những người mới tham gia vào công việc nghiên cứu Alchemi, sẽ gặp nhiều
khó khăn trong việc tạo một ứng dụng với Alchemi và việc thực thi ứng
dụng đó trên hệ thống lưới.
Học viên: Bùi Anh Kiệt – CH1101018 24
Tính toán lưới Alchemic.NET Framework trong Tính toán lưới

4 Kết luận
Alchemi là một framework hổ trợ cho phát triển phần mềm trên hệ thống lưới
thuộc lĩnh vực tính toán lưới, được phát triển dựa trên nền tảng .NET và được
Microsoft cung cấp. Tính toán lưới là một lĩnh vực mới trong ngành công nghệ
thông tin và với sự xuất hiện của Alchemi, việc phát triển các ứng dụng cũng như
các phần mềm trung gian trở nên đơn giản hơn rất nhiều và đó cũng là phương tiện
để tính toán lưới đến gần người phát triển phần mềm hơn, đặc biệt hơn nữa là nó
giải quyết được vấn đề lớn mà tính toán lưới hướng đến khi ra đời đó là tận dụng
tài nguyên sẵn có từ các máy tính đề bàn và internet để có thể thực hiện những
công việc tính toán có trọng lượng, kích thước vô cùng lớn mà không cần phải có
hệ thống siêu máy tính.
Có rất nhiều phương pháp để hiện thực một ứng dụng hay phần mềm trung gian
trên lưới nhưng Alchemi lại có ưu thế vì được cung cấp bởi Microsoft, mà phần
lớn máy tính để bàn đang được sử dụng hiện nay chạy hệ điều hành Windows do
đó việc truy xuất và khai thác các máy tính này để sử dụng như một máy trạm

trong hệ thống siêu máy tính ảo được thực hiện dễ dàng.
Với những thông tin mà nhóm tác giả cung cấp chúng ta có thể hình dung được
hoạt động của Alchemi và các thành phần cần thiết phải có trong nó. Với những
thông tin này, người phát triển phần mềm đã có được những thông tin cần thiết
ban đầu khi phát triển một phần mềm ứng dụng hay phần mềm trung gian trên lưới
đó là xây dựng những gì và xây dựng chúng ra sao. Tuy còn một vài hạn chế
nhưng bài báo này có ý nghĩa rất lớn khi cung cấp đến người đọc nền tảng của một
công trình lớn trong tương lai.
Với những lợi điểm của mình, chắc chắn trong tương lai Alchemi sẽ được phát
triển mạnh mẽ hơn với nhiều ứng dụng trải rộng trên nhiều lĩnh vực. Và cũng vì lẽ
đó mà sẽ còn có nhiều bài báo về Alchemi hơn, không chỉ về cách thức sử dụng
Alchemi để phát triển ứng dụng như thế nào mà còn trình bày chi tiết hơn cách
thức mà Alchemi khai thác các tài nguyên trên hệ thống lưới.
Học viên: Bùi Anh Kiệt – CH1101018 25

×