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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đạ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 [...]... 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... 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. .. 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. .. 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. .. 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. .. (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... = _A * _B; } } } 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.. .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... 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... 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 . 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. 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. 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

Ngày đăng: 09/04/2015, 18:47

Mục lục

    2 Tóm tắt nội dung bài báo

    2.2.2 Cấu hình hệ thống

    2.3 Thiết kế và thực thi

    2.3.2 Vòng đời của một ứng dụng trên lưới

    2.4 Alchemi API: Mô hình lập trình luồng trên lưới

    2.4.2 Tổng quan về quá trình phát triển ứng dụng trên lưới với Alchemi

    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

    2.5.1.2 Ứng dụng kiểm tra và Phương thức kiểm tra

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan