1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên ứu về mô hình tính toán lưới hướng kinh tế và ứng dụng triển khai hệ thống sun grid engine

81 3 0

Đ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

Thông tin cơ bản

Tiêu đề Nghiên Cứu Về Mô Hình Tính Toán Lưới Hướng Kinh Tế Và Ứng Dụng Triển Khai Hệ Thống Sun Grid Engine
Tác giả Phan Thanh Liêm
Người hướng dẫn PGS. TS. Nguyễn Thanh Thủy
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại luận văn thạc sĩ khoa học
Năm xuất bản 2008
Thành phố Hà Nội
Định dạng
Số trang 81
Dung lượng 4,15 MB

Cấu trúc

  • CHƯƠNG 0 MỞ ĐẦU - (11)
    • 0.1. ĐẶT VẤN ĐỀ (11)
    • 0.2. MỤC TIÊU LUẬN VĂN (12)
    • 0.3. CẤU TRÚC LUẬN VĂN (12)
  • CHƯƠNG 1 TỔNG QUAN VỀ TÍNH TOÁN LƯỚI - (14)
    • 1.1. TÍNH TOÁN LƯỚI LÀ GÌ ? (14)
      • 1.1.1. Khái niệm tính toán lưới (14)
      • 1.1.2. Các đặc trưng của tính toán lưới (15)
    • 1.2. PHÂN LOẠI TÍNH TOÁN LƯỚI (16)
      • 1.2.1. Phân loại dựa trên phạm vi của lưới (16)
      • 1.2.2. Phân loại dựa trên đặc tính xử lý (18)
    • 1.3. TỔNG KẾT CHƯƠNG (18)
  • CHƯƠNG 2 MÔ HÌNH LƯỚI HƯỚNG KINH TẾ - (20)
    • 2.1. KHÁI NIỆM LƯỚI KINH TẾ (20)
    • 2.2. MÔ HÌNH SaaS (21)
      • 2.2.1. Khái niệm (21)
      • 2.2.2. Phân loại (21)
    • 2.3. PHÂN LOẠI MÔ HÌNH LƯỚI KINH TẾ (23)
      • 2.3.1. Các mô hình lưới kinh tế trong nghiên cứu (24)
      • 2.3.2. Các mô hình lưới kinh tế trong thương mại (24)
    • 2.4. TÌM HIỂU MỘT SỐ MÔ HÌNH LƯỚI KINH TẾ TRÊN THẾ GIỚI (25)
      • 2.4.1. Amazon’s EC2 (26)
      • 2.4.2. Sun Compute Grid (32)
      • 2.4.4. Nhận xét (43)
    • 2.5. MỘT SỐ ĐỀ XUẤT CHO MÔ HÌNH LƯỚI TẠI VIỆT NAM (44)
      • 2.5.1. Các vấn đề còn tồn tại (44)
      • 2.5.2. Đề xuất phương hướng giải quyết (45)
  • CHƯƠNG 3 TÌM HIỂU VỀ ỨNG DỤNG TÍNH TOÁN LƯỚI DỰA TRÊN - CÔNG NGHỆ CỦA SUN MICROSYSTEMS (13)
    • 3.1. SUN SOLARIS 10 (46)
    • 3.2. SUN JAVA 2 PLATFORM (0)
      • 3.2.1. Giới thiệu về JAVA (49)
      • 3.2.2. Các đặc trưng của JAVA (50)
      • 3.3.3. Các loại ứng dụng của JAVA (52)
      • 3.3.4. Công cụ và môi trường lập trình JAVA (52)
    • 3.3. SUN COMPUTE SERVER TECHNOLOGY (53)
      • 3.3.1. Giới thiệu về Compute Server Technology (53)
      • 3.3.2. Kiến trúc các ứng dụng Compute Server (53)
      • 3.3.3. Phát triển các ứng dụng Compute Server với NetBeans IDE (55)
      • 3.3.4. Công nghệ Compute Server (57)
    • 3.4. SUN N1 GRID ENGINE (60)
      • 3.4.1. Giới thiệu về SUN N1 GRID ENGINE (60)
      • 3.4.2. Nguyên lý hoạt động của Sun Grid Engine [31] (61)
      • 3.4.3. Các thành phần của Grid Engine (65)
    • 3.5. Message Passing Interface (67)
  • CHƯƠNG 4 XÂY DỰNG HỆ THỐNG THỬ NGHIỆM - (69)
    • 4.1. THÀNH PHẦN CỦA HỆ THỐNG (69)
      • 4.1.1. Sơ đồ hệ thống (69)
      • 4.1.2. Thành phần hệ thống (70)
      • 4.1.3. Cấu hình hệ thống (70)
    • 4.2. TRIỂN KHAI HỆ THỐNG (70)
      • 4.2.1. Cài đặt nút điều khiển (70)
      • 4.2.2. Cài đặt các nút thực thi (71)
    • 4.3. BỘ CÔNG CỤ ĐO HIỆU NĂNG LINPACK (71)
      • 4.3.1. Linpack (71)
      • 4.3.2. Ý nghĩa các thông số (72)
      • 4.3.3. Khuyến nghị về việc lựa chọn các thông số (75)
    • 4.4. CHẠY THỬ NGHIỆM (75)
      • 4.4.1. Đo hiệu năng trên 1 nút (75)
      • 4.4.2. Đo hiệu năng trên 8 nút (75)
      • 4.4.3. Qmon - Giao diện đồ hoạ quản lý các tác vụ (76)
  • CHƯƠNG 5 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN - (78)
    • 5.1. NHỮNG KẾT QUẢ ĐÃ THỰC HIỆN ĐƯỢC TRONG LUẬN VĂN (78)
    • 5.2. HƯỚNG PHÁT TRIỂN (78)
      • 5.2.1. Tích hợp với hệ thống Portal (78)
      • 5.2.2. Tích hợp với Globus Toolkit (78)
      • 5.2.3. Xây dựng LiveCD cài đặt các nút thực thi (78)
  • TÀI LIỆU THAM KHẢO (80)

Nội dung

73 Trang 10 DANH MỤC CÁC TỪ VIẾT TẮT Ký hiệu Tên đầy đủGiải thích API Application Programming Interface Giao diện lập trình ứng dụng ASP Application Service Provider Nhà cung cấp dịch

TỔNG QUAN VỀ TÍNH TOÁN LƯỚI -

TÍNH TOÁN LƯỚI LÀ GÌ ?

1.1.1 Khái niệm tính toán lưới

Tính toán lưới, theo [1], là sự phát triển tiếp theo của tính toán phân tán, nhằm tạo ra một máy tính ảo mạnh mẽ từ nhiều hệ thống không đồng nhất Mục tiêu chính là nâng cao khả năng tính toán và chia sẻ tài nguyên, phục vụ nhu cầu của những người cần sức mạnh tính toán Tính toán lưới đã được xây dựng và phát triển để đáp ứng nhu cầu này một cách hiệu quả.

Tính toán lưới, phát triển từ tính toán song song và phân tán, đã xuất hiện từ thập kỷ 80 và 90 Thời điểm đó, các siêu máy tính phải giải quyết những vấn đề phức tạp như mô hình hóa khí hậu và các mô phỏng đòi hỏi năng lực tính toán lớn trong dự báo thời tiết.

Thời kỳ các siêu máy tính chủ yếu nhằm giải quyết các nhiệm vụ lớn trong khoa học tính toán, kỹ thuật và nhiều lĩnh vực khác Những siêu máy tính này có đặc điểm đa dạng và thường rất đắt đỏ Nhiều trung tâm tính toán trên thế giới cung cấp năng lực tính toán dưới dạng siêu máy tính, với khả năng liên kết tốt giữa các bộ vi xử lý trong cùng một trung tâm Tuy nhiên, kết nối mạng diện rộng giữa các trung tâm máy tính vẫn chưa đạt yêu cầu Hơn nữa, các mô hình lập trình và bảo mật để kết nối tài nguyên tính toán vẫn chưa hoàn thiện, như công nghệ MPI (Message Passing Interface) được thiết kế chủ yếu cho các máy đơn với CPU và mạng có hiệu năng tương tự.

Cơ sở hạ tầng phân tán châu Âu cho các ứng dụng siêu máy tính đang kết nối các trung tâm siêu máy tính của các quốc gia, nhằm giải quyết những vấn đề tồn tại trong lĩnh vực này.

Với chi phí cao của công nghệ siêu máy tính, tính toán phân cụm đang trở nên phổ biến hơn, cho phép sử dụng các phần cứng cũ để tạo ra sức mạnh tính toán lớn Các ứng dụng của tính toán phân cụm tương tự như siêu máy tính, nhưng đơn giản hơn trong việc hoán đổi các thành phần như bộ vi xử lý và đĩa cứng với chi phí thấp Trong cộng đồng siêu máy tính, nhiều dự án tập trung vào việc truy cập dữ liệu nhanh cho các tính toán cực hạn và song song, trong khi một cộng đồng nghiên cứu đặc biệt đã giải quyết các vấn đề về hệ thống Vào/Ra song song, góp phần hình thành nên các lưới dữ liệu hiện đại.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Internet và các giao thức của nó đã thúc đẩy sự phát triển của Web và các dịch vụ Web Các giao thức như TCP/IP và HTTP tạo nền tảng cho các giao thức mới như SOAP (Simple Object Access Protocol) Chúng là thành phần cốt lõi giúp Grids và các công nghệ tính toán phân tán hiện đại hoạt động trên các nền tảng khác nhau Đặc biệt, giao thức HTTP đã mang lại bước đột phá trong nghiên cứu và thương mại, trở thành một phần không thể thiếu trong cuộc sống hàng ngày của mọi người.

Ba lĩnh vực siêu máy tính, tính toán phân cụm và Internet đã có ảnh hưởng sâu sắc đến sự phát triển của tính toán lưới Sự tương tác giữa chúng là rất chặt chẽ, khiến cho việc tách biệt từng lĩnh vực trở nên khó khăn.

1.1.2 Các đặc trưng của tính toán lưới

Tận dụng tài nguyên nhàn rỗi

Trong nhiều tổ chức, tài nguyên tính toán thường xuyên bị nhàn rỗi và lãng phí, bao gồm cả tài nguyên xử lý và lưu trữ Tính toán lưới là giải pháp lý tưởng để tận dụng những tài nguyên này, từ đó nâng cao hiệu quả sử dụng tài nguyên trong tổ chức.

Song song hóa việc thực thi các ứng dụng là một đặc trưng hấp dẫn của lưới tính toán Các ứng dụng lớn được áp dụng các thuật toán song song, cho phép chia nhỏ công việc thành các phần độc lập Mỗi phần công việc này được thực hiện trên các máy khác nhau trong lưới, giúp rút ngắn đáng kể thời gian thực hiện công việc.

Tăng khả năng cộng tác nhờ các tài nguyên ảo, tổ chức ảo

Truy nhập tới các tài nguyên mở rộng

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Lưới không chỉ cung cấp tài nguyên tính toán và lưu trữ mà còn cho phép truy cập vào các thành phần mở rộng khác như băng thông, bản quyền phần mềm và các thiết bị đặc biệt.

Lưới kết nối các tài nguyên của các máy độc lập thành một hệ thống tài nguyên thống nhất, cho phép bộ lập lịch cân bằng việc sử dụng tài nguyên Nhờ đó, lưới có khả năng chuyển công việc đến các tài nguyên có mức sử dụng thấp hơn, tối ưu hóa hiệu suất và tiết kiệm tài nguyên.

Lưới kết hợp các tài nguyên phân tán về địa lý, giúp đảm bảo rằng khi xảy ra sự cố điện hoặc hỏng hóc tại một vị trí, các vị trí khác vẫn hoạt động bình thường Hệ thống lưới có khả năng tự động di chuyển công việc từ nơi phát hiện lỗi sang các máy khác, đảm bảo tính liên tục và ổn định trong quá trình vận hành.

Lưới cho phép người quản trị linh hoạt cấu hình để đáp ứng các mục đích sử dụng đa dạng, đảm bảo tính đồng nhất và tập trung.

PHÂN LOẠI TÍNH TOÁN LƯỚI

Theo Ahmar Abbas [35], lưới tính toán được phân loại dựa trên cấu trúc tổ chức mà nó phục vụ hoặc theo tỷ lệ tài nguyên chính được sử dụng Dưới đây là một số kiểu phân loại lưới tính toán.

1.2.1 Phân loại dựa trên phạm vi của lưới

1.2.1 Departmental 1 grids Lưới cục bộ -

Departmental grids được thiết kế nhằm giải quyết các vấn đề phục vụ cho một nhóm người trong doanh nghiệp, với các tài nguyên không được chia sẻ cho các nhóm khác Dưới đây là một số ví dụ về định nghĩa departmental grids từ các nhà cung cấp khác nhau.

Sun Microsystems: Cluster grids là tập hợp các hệ thống làm việc cùng nhau, cung cấp điểm truy cập cho người sử dụng Công nghệ này thường được áp dụng trong các dự án nhóm, hỗ trợ các công việc đòi hỏi thông lượng cao và hiệu suất tối ưu.

IBM định nghĩa "Infra Grids" là một lưới tối ưu hóa tài nguyên trong doanh nghiệp, không bao gồm các đối tác nội bộ Lưới này có thể áp dụng cho một khuôn viên (campus) hoặc mở rộng qua nhiều khuôn viên khác nhau.

1.2.1.2 Enterprise g s - rid Lưới doanh nghiệp

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Enterprise grids là hệ thống tài nguyên phân bố rộng rãi trong một doanh nghiệp, phục vụ cho tất cả người dùng trong tổ chức đó Các nhà cung cấp có nhiều định nghĩa khác nhau về Enterprise grids, nhưng chung quy lại, chúng đều nhấn mạnh vào khả năng cung cấp dịch vụ hiệu quả và tối ưu cho mọi thành viên trong doanh nghiệp.

Platform Computing cung cấp giải pháp enterprise grid, được triển khai trong các tập đoàn lớn có chi nhánh toàn cầu hoặc cần truy cập tài nguyên bên ngoài Các enterprise grids này hoạt động an toàn bên trong tường lửa của doanh nghiệp.

IBM định nghĩa intra grids là việc chia sẻ tài nguyên giữa các nhóm khác nhau trong một doanh nghiệp Intra grids có thể được triển khai nội bộ hoặc trên mạng WAN, và chúng hoạt động hiệu quả ngay cả trong các tường lửa.

Sun Microsystems phát triển Campus grids, cho phép các dự án và bộ phận chia sẻ tài nguyên tính toán một cách mở và hợp tác Campus grids bao gồm máy chủ, máy trạm phân tán và các tài nguyên tập trung, được phân bổ tại nhiều miền quản trị khác nhau, từ các phòng ban đến toàn bộ doanh nghiệp.

1.2.1.3 Extraprise grids Lưới liên doanh nghiệp -

Extraprise grids được hình thành giữa các công ty, các đối tác và khách hàng, cho phép chia sẻ tài nguyên hiệu quả Các tài nguyên này thường được truy cập thông qua mạng riêng ảo (VPN), đảm bảo tính bảo mật và linh hoạt trong việc kết nối Dưới đây là một số định nghĩa tương tự từ các nhà cung cấp khác.

IBM cho biết, Extra grids cho phép chia sẻ tài nguyên với các đối tác bên ngoài Để thực hiện việc này, cần có các kết nối đáng tin cậy giữa các doanh nghiệp, thông qua các dịch vụ như mạng riêng (private network) hoặc VPN.

Partner grids là các lưới hợp tác giữa các tổ chức trong cùng ngành, nơi các bên có nhu cầu cộng tác trên các dự án và chia sẻ tài nguyên để đạt được mục tiêu chung.

1.2.1.4 Global grids Lưới toàn cầu -

Các lưới toàn cầu (Global Grids) được thiết lập qua hạ tầng Internet công cộng, cho phép các tổ chức hỗ trợ hoạt động kinh doanh và giao dịch với nhà cung cấp dịch vụ.

Sun Microsystems cung cấp Global grids, cho phép người dùng truy cập vào các tài nguyên sẵn có từ bất kỳ đâu trên thế giới Những hệ thống này cung cấp khả năng tính toán và hợp tác thông qua các tài nguyên phân tán, phục vụ cho cả cá nhân và tổ chức Người dùng có thể gửi các công việc lớn qua mạng công cộng tới nhà cung cấp dịch vụ một cách dễ dàng và hiệu quả.

IBM: Inter grids cho phép chia sẻ tài nguyên lưu trữ, dữ liệu và tính toán thông qua các dịch vụ Web công cộng Quá trình này bao gồm việc chia sẻ tài nguyên với các doanh nghiệp khác hoặc mua bán khả năng dư thừa.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

1.2.2 Phân loại dựa trên đặc tính xử lý

1.2.2.1 Compute grids - Lưới tính toán

Compute grids được thiết kế để cung cấp truy cập hiệu quả đến các nguồn tài nguyên tính toán Chúng có thể được phân loại theo nhiều loại phần cứng khác nhau khi triển khai, từ đó tạo ra sự linh hoạt và tối ưu hóa trong việc sử dụng tài nguyên.

TỔNG KẾT CHƯƠNG

Vai trò của tính toán lưới ngày càng quan trọng do nhu cầu xử lý thông tin của cá nhân và tổ chức tăng mạnh, trong khi giới hạn vật lý cản trở việc sản xuất chip nhanh hơn.

Sự phát triển của các lưới tính toán toàn cầu đang diễn ra mạnh mẽ, nhưng vẫn còn nhiều vấn đề chưa được giải quyết Cần thiết phải nghiên cứu và khắc phục những thách thức này để công nghệ lưới có thể phục vụ một cách hiệu quả hơn cho đông đảo người dùng.

Nhu cầu về năng lực tính toán lớn đang gia tăng tại Việt Nam, đặc biệt trong cộng đồng nghiên cứu và các tổ chức, như một yêu cầu thiết yếu để đáp ứng sự phát triển công nghệ thông tin.

Nhận thức rõ vai trò quan trọng của tính toán lưới, tác giả hy vọng sẽ đóng góp vào sự phát triển và phổ biến công nghệ này, giúp nó tiếp cận gần hơn với người dùng cuối, các nhà nghiên cứu và những người đam mê lĩnh vực này.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

MÔ HÌNH LƯỚI HƯỚNG KINH TẾ -

KHÁI NIỆM LƯỚI KINH TẾ

Lưới kinh tế là một mô hình thương mại truyền thống, cung cấp cho doanh nghiệp khả năng tính toán theo yêu cầu, truy cập tài nguyên đơn giản, chi phí sở hữu thấp và mô hình trả giá linh hoạt theo mức sử dụng Khả năng tính toán theo yêu cầu giúp doanh nghiệp ứng phó hiệu quả với nhu cầu tính toán ngoài kế hoạch, trong khi việc truy cập tài nguyên đơn giản cho phép người dùng dễ dàng sử dụng mà không tốn nhiều công sức Chi phí sở hữu thấp mở ra cơ hội cho các doanh nghiệp vừa và nhỏ tiếp cận tài nguyên mà họ không đủ khả năng mua sắm toàn bộ, cho phép họ chỉ trả tiền cho lượng tài nguyên đã sử dụng Mô hình này giúp các doanh nghiệp nhỏ cạnh tranh với các công ty lớn có khả năng tài chính mạnh mẽ hơn.

Phần mềm như một dịch vụ (SaaS) là một khái niệm quan trọng trong các mô hình lưới, cho phép người dùng truy cập và sử dụng phần mềm qua internet mà không cần cài đặt Trong bài viết này, chúng ta sẽ khám phá sâu hơn về khái niệm này và vai trò của nó trong ngành công nghệ thông tin.

MÔ HÌNH SaaS

Mô hình Software-as-a-Service (SaaS) cho phép người dùng truy cập phần mềm qua dịch vụ mà không cần mua, cài đặt hay cấu hình Người sử dụng chỉ cần gọi dịch vụ khi cần, với các phần mềm đã được chuẩn bị sẵn sàng để sử dụng từ xa.

Nhiều ứng dụng SaaS hiện nay được phát triển theo kiến trúc hướng dịch vụ, trong đó mỗi dịch vụ hoạt động độc lập và giao tiếp thông qua một giao diện rõ ràng Các chi tiết phức tạp bên trong dịch vụ được ẩn giấu, tạo ra sự tương tác giống như các hộp đen.

Mô hình SaaS cho phép người dùng truy cập phần mềm từ xa, không cần máy tính mạnh, chỉ cần kết nối Internet hoặc mạng riêng ảo Điều này giúp chuyển giao việc chạy phần mềm đến một địa điểm khác, mang lại sự linh hoạt và tiện lợi cho người sử dụng.

Khác với các ứng dụng truyền thống yêu cầu người dùng thao tác trên giao diện cục bộ, ứng dụng SaaS chủ yếu được truy cập qua trình duyệt web, mang lại lợi ích lớn cho người dùng nhờ vào giao diện nhẹ nhàng hơn Mặc dù phát triển giao diện trong môi trường trình duyệt có thể gặp khó khăn do sự hỗ trợ khác nhau của các trình duyệt, nhưng việc cải tiến hệ thống lại trở nên dễ dàng hơn và giúp nâng cao hiệu suất tổng thể của ứng dụng.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Các giải pháp SaaS có thể được phát triển với nhiều mức độ kỹ thuật khác nhau, và chúng có thể được phân loại thành ba nhóm chính dựa trên độ phức tạp, chi phí và tính linh hoạt.

Hình 2- Các loại mô hình SaaS

Mô hình In-house Hosting

Hầu hết các giải pháp SaaS hiện nay đều thuộc mô hình mà nhà cung cấp phát triển phần mềm bằng cách sử dụng tài nguyên của chính họ Điều này yêu cầu họ phải đầu tư vào số lượng lớn tài nguyên để đáp ứng nhu cầu tính toán của người dùng Tuy nhiên, nếu nhà cung cấp có lượng khách hàng ổn định và có khả năng duy trì tốt các tài nguyên này, mô hình tự triển khai có thể tiết kiệm chi phí hơn so với việc thuê tài nguyên từ bên thứ ba.

Trong mô hình này, phần mềm được cung cấp bởi bên thứ ba, gọi là nhà cung cấp dịch vụ ứng dụng (ASP), bao gồm các công cụ và thư viện hỗ trợ phát triển ứng dụng SaaS tương thích với tài nguyên phần cứng và hệ điều hành Để tiếp cận người dùng, các nhà cung cấp phần mềm cần chi trả cho một mạng lưới tài nguyên đáng tin cậy từ các nhà cung cấp.

Phan Thanh Liêm, thành viên lớp CH CNTT 2006, nhấn mạnh rằng việc sử dụng dịch vụ phần mềm giúp các nhà cung cấp giảm thiểu chi phí hỗ trợ và bảo trì tài nguyên hiệu quả hơn.

Mô hình này rất lý tưởng cho các doanh nghiệp nhỏ sản xuất phần mềm SaaS, vì họ thường thiếu không gian và nhân lực, đồng thời có thể không đủ băng thông mạng để quản lý tài nguyên và cung cấp dịch vụ phần mềm hiệu quả.

Các nhà cung cấp dịch vụ ứng dụng sẵn sàng đầu tư vào tài nguyên hiệu năng cao để phục vụ cho nhiều ứng dụng từ các nhà cung cấp phần mềm khác nhau Điều này giúp họ tối ưu hóa việc sử dụng tài nguyên và đáp ứng linh hoạt với những thay đổi không lường trước được trong nhu cầu của người dùng.

Mô hình lưới của SaaS cho phép truy cập linh hoạt vào các tài nguyên phân tán vô hạn trên toàn cầu, kết hợp với việc thuê chỗ cho phần mềm Khác với mô hình ASP, số lượng tài nguyên trong mô hình này không bị giới hạn bởi nhà cung cấp dịch vụ ứng dụng Người dùng chỉ phải thanh toán dựa trên mức độ sử dụng thực tế thay vì phải mua trọn gói Đây được xem là bước tiến mới trong thị trường SaaS.

Tài nguyên lưới cho phép nhiều người dùng truy cập và sử dụng mà không cần sở hữu, chỉ cần "thuê" khi cần thiết Khi cần chạy phần mềm, người dùng có thể nhanh chóng tìm thấy các gói phần mềm cần thiết và kết nối với giao diện đã được cấu hình trước Quá trình truyền tải phần mềm và cấu hình diễn ra liên tục và mượt mà, nhờ vào các phần mềm lưới trung gian, giúp nhận diện sự sẵn sàng của tài nguyên và lựa chọn tài nguyên phù hợp để phục vụ người dùng cuối.

PHÂN LOẠI MÔ HÌNH LƯỚI KINH TẾ

Các mô hình lưới kinh tế hiện tại được chia thành hai nhóm chính: nghiên cứu và thương mại Mô hình trong nghiên cứu chủ yếu do các trường đại học và trung tâm nghiên cứu phát triển, dựa trên kiến trúc lưới mở, cho phép kết nối giữa nhà cung cấp và người sử dụng để thực hiện trao đổi dịch vụ Ngược lại, mô hình trong thương mại được phát triển bởi các công ty riêng lẻ nhằm mục đích bán sản phẩm, thường không liên quan đến nhiều nhà cung cấp.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

2.3.1 Các mô hình lưới kinh tế trong nghiên cứu Đại diện cho các mô hình lưới kinh tế trong nghiên cứu là các dự án như GridASP [18], GRASP [19], GRACE [20] và BIG [21] Các dự án này đẩy mạnh việc trao đổi dịch vụ trên lưới

GridASP và GRASP dựa trên khái niệm nhà cung cấp dịch vụ ứng dụng (ASP) để phân phối và tạo ra dịch vụ GridASP cung cấp một kiến trúc hướng dịch vụ (SOA) hứa hẹn cho việc phát triển sản phẩm mới và mô hình thương mại Các mô hình thương mại của dự án bao gồm bốn thành phần: người sử dụng, nhà cung cấp dịch vụ như portal, nhà cung cấp ứng dụng cung cấp phần mềm, và nhà cung cấp tài nguyên sở hữu phần cứng Về mặt kỹ thuật, GridASP đã giải quyết các vấn đề như quản lý người dùng, dữ liệu, công việc, xử lý workflow, môi giới tài nguyên, triển khai ứng dụng bán tự động và bảo mật Tuy nhiên, GridASP cần cải thiện hơn nữa trong việc tích hợp các chức năng kinh tế như quản lý SLA, thỏa thuận dịch vụ, kiểm kê và định giá.

GRASP phát triển một kiến trúc dịch vụ tập trung vào dịch vụ web và tiêu chuẩn OGSA, nhằm nâng cao khả năng tích hợp dịch vụ Mục tiêu chính của GRASP là tạo điều kiện cho các mô hình thương mại mới và tích hợp các chức năng kinh tế như kiểm kê, thanh toán và quản lý SLA So với GridASP, kiến trúc GRASP cung cấp hỗ trợ tốt hơn cho sự hợp tác giữa các tổ chức và nhà cung cấp dịch vụ ứng dụng, giúp hình thành các tổ chức ảo và hiệp hội nhà cung cấp dịch vụ ứng dụng.

So với GridASP và GRASP, GRACE có định hướng kinh tế hơn và ít chú trọng vào các vấn đề kiến trúc Dự án nhằm phát triển hạ tầng cho lưới tính toán, cho phép môi giới, tìm kiếm dịch vụ và trao đổi qua các API mới GRACE dựa vào các phần mềm lưới trung gian hiện tại như Globus và Legion, và xác định hai đối tượng chính trong việc trao đổi dịch vụ: người sử dụng, được đại diện bởi các bộ môi giới, và người bán hoặc chủ sở hữu tài nguyên.

Dự án BIG nhằm giải quyết các vấn đề của mô hình lưới kinh tế từ góc độ tổng quát và lý thuyết, phân chia các dự án lưới hiện tại thành bốn mức dựa trên hỗ trợ cho chức năng kinh tế và mô hình thương mại Nó còn chú trọng đến các yêu cầu cho mô hình thương mại mới trên lưới, đồng thời giải quyết các vấn đề liên quan đến tính minh bạch, QoS, môi giới, SLA và quản lý sự ủy thác động trong tổ chức ảo BIG hỗ trợ một loạt ứng dụng mới như workflow, ứng dụng theo yêu cầu, và quản lý tài nguyên động.

2.3.2 Các mô hình lưới kinh tế trong thương mại Đại diện cho các mô hình kinh tế trong thương mại là các dự án như Sun Grid Compute Utility, Amazon EC2, the Virtual Private Grid (VPG), 3Tera,

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

FlexiScale, GoGrid và WebEx Connect Application Grid cung cấp tài nguyên tính toán theo yêu cầu, trong khi Sun Utility Grid, 3Tera, FlexiScale, GoGrid và Amazon EC2 cung cấp ứng dụng theo yêu cầu Sun Utility Grid cho phép người dùng tạo và gửi công việc nhưng không cung cấp công cụ giám sát, chỉ báo cáo log và kết quả khi công việc hoàn thành Ngược lại, Amazon cho phép người dùng tạo máy ảo, truy cập vào bộ xử lý Xeon 1.7Ghz, 1.75Gb RAM, 160 Gb ổ cứng và băng thông 250Mb/s, giúp việc quản lý ứng dụng trở nên dễ dàng Amazon cũng cung cấp tài nguyên lưu trữ qua Amazon S3, và người dùng chỉ phải trả tiền cho tài nguyên họ tiêu thụ, với mức giá 1USD/CPU-hr cho Sun Grid Compute Utility, 0.10USD/giờ cho Amazon, 0.20USD/GB cho dữ liệu truyền vào và ra, và 0.15USD/GB-tháng cho lưu trữ với Amazon S3 (tính đến tháng 2 năm 2007).

Hệ thống VPG, được phát triển bởi British Telecom (BT) cùng các đối tác công nghiệp, cung cấp dịch vụ âm nhạc và video theo yêu cầu cho khách hàng Dự án này dựa trên ảo hóa tài nguyên và kiến trúc hướng dịch vụ (SOA), cho phép phối hợp tài nguyên ứng dụng và nhà cung cấp Tuy nhiên, VPG không hỗ trợ ứng dụng phức tạp như workflow và thiếu khả năng kết hợp dịch vụ Một nhược điểm khác là BT kiểm soát toàn bộ mạng, quản lý tài nguyên và ứng dụng như một người bán lại, không cho phép các nhà cung cấp mạng khác và bộ môi giới tài nguyên cùng tồn tại trong lưới.

WebEx cung cấp giải pháp họp trực tuyến, hội thảo web và hội nghị qua điện thoại, nhờ vào mô hình SaaS cho phép tích hợp dịch vụ phức tạp và ứng dụng workflow Nền tảng này cho phép các nhà phát triển tích hợp ứng dụng mới và bán sản phẩm qua kiến trúc của WebEx Các ứng dụng được phân phối qua WebEx MediaTone Network, một mạng lưới toàn cầu với các trung tâm dữ liệu và máy chủ phân tán Đặc biệt, WebEx tập trung vào phần mềm họp trực tuyến, đáp ứng nhu cầu ngày càng cao của người dùng.

TÌM HIỂU MỘT SỐ MÔ HÌNH LƯỚI KINH TẾ TRÊN THẾ GIỚI

Trong phần này, luận văn sẽ phân tích hình thức hoạt động của một số mô hình lưới kinh tế thương mại hiện tại đang cung cấp dịch vụ.

- Amazon Elastic Compute Cloud của Amazon

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

- Sun Compute Grid của SUN Microsystems

Amazon Elastic Compute Cloud (Amazon EC2) được ra mắt vào tháng 8 năm 2006, cung cấp dịch vụ tính toán trên nền tảng đám mây Dịch vụ này được thiết kế nhằm hỗ trợ các nhà phát triển trong việc thực hiện các tác vụ tính toán một cách dễ dàng và hiệu quả hơn.

Dịch vụ Web của Amazon EC2 với giao diện đơn giản cho phép người dùng thiết lập cấu hình tính toán với chi phí tối thiểu, đồng thời kiểm soát hoàn toàn nguồn tài nguyên tính toán EC2 giúp giảm thời gian thiết lập và khởi động máy chủ mới chỉ còn vài phút, cho phép người dùng linh hoạt thay đổi, tăng hoặc giảm theo yêu cầu tính toán Amazon EC2 thay đổi tính kinh tế của việc tính toán bằng cách chỉ tính phí cho những gì người dùng thực sự sử dụng Ngoài ra, EC2 cung cấp cho các nhà phát triển công cụ để xây dựng ứng dụng có khả năng phục hồi nhanh sau sự cố và cách ly chúng khỏi chuỗi lỗi chung.

Amazon EC2 cung cấp môi trường tính toán ảo, cho phép người dùng triển khai máy chủ ảo thông qua giao diện dịch vụ web Người dùng có thể tùy chỉnh môi trường ứng dụng, quản lý quyền truy cập mạng và chạy nhiều hệ thống theo nhu cầu Để sử dụng Amazon EC2, người dùng cần thực hiện các bước cụ thể để thiết lập và cấu hình dịch vụ.

Tạo một Amazon Machine Image (AMI) bao gồm các ứng dụng, thư viện, dữ liệu và cài đặt cấu hình cần thiết, hoặc sử dụng một hình ảnh đã được cấu hình sẵn từ Amazon để tạo khuôn mẫu.

Tải AMI lên Amazon Simple Storage Service (Amazon S3) để lưu trữ an toàn và đáng tin cậy Amazon EC2 cung cấp công cụ giúp việc lưu trữ AMI trở nên đơn giản hơn, trong khi Amazon S3 đảm bảo kho chứa nhanh chóng cho các AMI của bạn.

- Sử dụng dịch vụ web Amazon EC2 để thiết lập tính bảo mật và quyên truy cập mạng

- Bắt đầu, kết thúc và điều khiển bao nhiêu instances AMI tùy theo nhu cầu

- Chỉ thanh toán cho những gì thực sự sử dụng, như instance hours hoặc – số dữ liệu được chuyển ĐIỂM NỔI BẬT CỦA DỊCH VỤ:

Amazon EC2 cung cấp tính đàn hồi, cho phép người dùng tăng hoặc giảm khả năng tính toán chỉ trong vài phút, thay vì phải chờ đợi hàng giờ hoặc hàng ngày Điều này giúp tối ưu hóa tài nguyên và đáp ứng nhanh chóng nhu cầu của doanh nghiệp.

Phan Thanh Liêm, thành viên lớp CH CNTT 2006, cho biết rằng hàng trăm đến hàng nghìn máy chủ có thể được quản lý đồng thời Nhờ vào việc sử dụng APIs, các ứng dụng có khả năng tự động điều chỉnh tỷ lệ và quy mô dựa trên nhu cầu sử dụng thực tế.

Người sử dụng có toàn quyền kiểm soát số lượng instance và có khả năng tương tác với chúng như với bất kỳ thiết bị nào khác Các instance có thể được khởi động lại từ xa thông qua API, cho phép người dùng dễ dàng điều khiển thiết bị truy xuất từ máy chủ.

- Linh hoạt: có thể chọn một vài loại instances, cho phép chọn một cấu hình ghi nhớ, CPU, và lưu trữ instance tối ưu cho ứng dụng

Amazon EC2 được thiết kế để tích hợp liền mạch với các dịch vụ web khác của Amazon như Amazon S3, Amazon SDB và Amazon SQS, nhằm cung cấp một giải pháp tính toán toàn diện, hỗ trợ quy trình truy vấn và lưu trữ trên một loạt ứng dụng phong phú.

Amazon EC2 là dịch vụ đáng tin cậy, cung cấp môi trường ổn định với khả năng thay thế các instances một cách nhanh chóng và hiệu quả Dịch vụ này hoạt động dựa trên trung tâm dữ liệu và hạ tầng mạng lưới đã được xác nhận của Amazon, đảm bảo tính sẵn sàng và độ tin cậy cao cho người dùng.

Xây dựng ứng dụng có khả năng phục hồi nhanh sau sự cố là một điểm đặc biệt quan trọng Amazon cung cấp năng lực cho việc phát triển những ứng dụng tự động có khả năng tìm kiếm và sửa chữa lỗi, giúp nâng cao hiệu suất và độ tin cậy của hệ thống.

Amazon EC2 hiện cung cấp khả năng đặt instances ở nhiều vị trí, được phân chia theo vùng (region) và các Khu vực Sẵn có (Availability Zones) Các region được phân tán địa lý và chia thành các region đơn lẻ, trong khi các Availability Zones được phân biệt rõ ràng và cách ly với lỗi từ các zones khác, với chi phí hợp lý và khả năng kết nối mạng thấp Mỗi region bao gồm một hoặc nhiều Availability Zones, cho phép người dùng tạo các instances trong các zones riêng biệt, từ đó bảo vệ ứng dụng khỏi các lỗi xảy ra ở một vị trí đơn lẻ.

Địa chỉ IP đàn hồi là các địa chỉ IP tĩnh được thiết kế cho môi trường đám mây, cho phép người dùng kiểm soát địa chỉ này mà không phụ thuộc vào một instance cụ thể Khác với địa chỉ IP tĩnh truyền thống, địa chỉ IP đàn hồi giúp ẩn lỗi của instance hoặc Availability Zone bằng cách cho phép người dùng dễ dàng chuyển đổi địa chỉ IP công khai đến bất kỳ instance nào trong tài khoản Điều này giúp xử lý nhanh chóng các vấn đề liên quan đến instance hoặc phần mềm mà không cần phải chờ đợi kỹ thuật viên thiết lập lại hoặc chờ DNS cập nhật cho tất cả khách hàng.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Amazon EC2 đảm bảo an toàn bằng cách cung cấp giao diện dịch vụ web cho phép thiết lập cấu hình tường lửa, giúp kiểm soát quyền truy cập mạng giữa các nhóm hoặc giữa các instances.

TÌM HIỂU VỀ ỨNG DỤNG TÍNH TOÁN LƯỚI DỰA TRÊN - CÔNG NGHỆ CỦA SUN MICROSYSTEMS

SUN SOLARIS 10

Sau nhiều năm phát triển với kinh phí khoảng 500 triệu USD, vào tháng 1/2005, Sun đã ra mắt hệ điều hành nguồn mở Solaris 10, được mong đợi bởi giới công nghệ thông tin Solaris 10 sở hữu hơn 600 tính năng mới, phù hợp cho các trung tâm dữ liệu lớn, ngân hàng, công ty truyền thông và hệ thống máy tính của chính phủ.

Sun Solaris 10, khác với Sun Solaris 9, được thiết kế để hỗ trợ các bộ vi xử lý x86 và kiến trúc 64 bit cũng như SPARC Sau khi ra mắt, hệ điều hành này đã thiết lập nhiều kỷ lục thế giới về hiệu suất, giá cả và các tiêu chí khác.

Dưới đây là một số tính năng của nổi bật và quan trọng Sun 10:

Hệ điều hành Solaris 10, được coi là hệ điều hành bảo mật nhất hiện nay, cung cấp nhiều tính năng bảo mật tiên tiến từng được sử dụng trong các hệ thống quân đội Tính năng "Quản lý Quyền Người dùng và Quy trình" cùng với "Solaris Containers" cho phép người dùng chạy hàng ngàn ứng dụng an toàn trên cùng một hệ thống Quản trị viên hệ thống Solaris có thể dễ dàng gia cố hệ thống để tạo nền tảng bảo mật vững chắc cho việc triển khai dịch vụ Đặc biệt, "Solaris Trusted Extensions" là một thành phần chuẩn của Solaris, cho phép khách hàng với nhu cầu chính sách hoặc bảo vệ dữ liệu cụ thể sử dụng tính năng đánh nhãn độc quyền.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

* Khả năng lần vết - Observability:

Sun 10 đã cải tiến rất nhiều về cách thức để người quản trị hệ thống cũng như các nhà phát triển có thể xác định các nguyên nhân để tối ưu hiệu năng của hệ thống và ứng dụng Công nghệ Solaris Dynamic Trace (Dtrace) cho phép can thiệp sâu vào các hệ thống phức tạp hiện nay, nhằm khắc phục các vấn đề về hệ thống trong thời gian thực Các tính năng khác của Solaris giúp cho người dùng thấu hiểu về hệ thống, và nhanh chóng giải quyết được các sự cố về phần cứng, về các luồng và quản lý việc quản lý các bản vá tự động

Dtrace là công cụ theo dõi toàn diện, giúp khắc phục vấn đề hệ thống theo thời gian thực mà không ảnh hưởng đến hiệu suất Công cụ này cho phép quản trị viên, nhà tích hợp hệ thống và nhà phát triển tối ưu hóa ứng dụng để cải thiện hiệu năng và phát hiện sự cố trong môi trường sản xuất Đặc biệt, Dtrace được tích hợp vào thư viện MPI, cho phép theo dõi các sự kiện truyền thông quan trọng trong phần mềm ứng dụng song song, làm cho nó trở thành một tính năng thiết yếu cho môi trường tính toán hiệu suất cao.

* Hiệu năng cao - High Performance

Solaris 10 đã vượt qua các đối thủ cạnh tranh khi triển khai các ứng dụng khách hàng cũng như vượt qua các tiêu chuẩn công nghiệp Người dùng có thể cảm nhận được sự khác biệt về hiệu năng của TCP/IP stack, nhân đã được cải tiến toàn diện, công nghệ lần vết tiên tiến, và các tối ưu đặc biệt về cấp phát bộ nhớ và chip đa luồng Tốc độ đạt được nhanh hơn hẳn mà không phải thay đổi các ứng dụng đã có

- Đạt được các kỷ lục thế giới về hiệu năng và giá/hiệu năng

- Hiệu năng tăng xấp xỉ tuyến tính: 99% đối với các ứng dụng cơ sở dữ liệu và 94% đối với các ứng dụng Java

- Tăng tốc độ IPSec, sử dụng DES lên 77% và sử dụng 3DES lên hơn 130% so với Solaris 9

- Tăng tốc ứng dụng web tới 47% trên kiến trúc SPARC và 43% trên kiến trúc x86 so với Solaris 9, và hơn 80% so với Solaris 8

* Công nghệ ảo hoá - Virtualization

Với sự gia tăng chi phí quản lý hệ thống máy chủ và phần mềm hiện nay, người dùng đang tìm kiếm giải pháp mới để giảm chi phí hạ tầng thông tin và cải thiện quản lý dịch vụ Việc hợp nhất nhiều ứng dụng trên một hệ thống đòi hỏi thay đổi cấu trúc hiện tại, dẫn đến nhiều khó khăn và thường tốn kém Công nghệ ảo hóa đang trở thành một lựa chọn tiềm năng để giải quyết những thách thức này.

Hệ điều hành Solaris đã được giới thiệu nhằm giải quyết các vấn đề liên quan đến ảo hóa Trong đó, Solaris Containers là một phần quan trọng trong bộ công nghệ ảo hóa của Sun, giúp tối ưu hóa hiệu suất và quản lý tài nguyên hiệu quả hơn.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Logical Domains (Ldoms), cho phép người dùng có thể chạy theo mô hình một ứng dụng một server trong khi vẫn chia sẻ tài nguyên phần cứng -

Solaris Containers bao gồm Solaris Zones và Solaris Resource Manager, cho phép phân chia không gian hệ điều hành thành nhiều phân vùng khác nhau Với Solaris Zones, người dùng có thể tạo ra hơn 8000 phân vùng nhỏ trong một môi trường hệ điều hành Solaris Resource Manager cung cấp khả năng phân phối linh hoạt tài nguyên phần cứng như bộ vi xử lý và bộ nhớ giữa các môi trường ảo, đồng thời cho phép ưu tiên cấp phát tài nguyên dựa trên mức độ quan trọng của từng công việc Điều này cho phép một bộ xử lý đơn được chia sẻ cho nhiều môi trường Solaris ảo, tối ưu hóa hiệu suất khai thác server.

Một số đặc tính nổi bật của công nghệ ảo hoá:

- Cung cấp khả năng di chuyển động hoặc nhân bản các ứng dụng để thích nghi với sự thay đổi của doanh nghiệp

- Hạ giá thành quản trị bằng cách kết hợp nhiều ứng dụng trên một máy

- Giảm thiểu xung đột giữa các ứng dụng chạy trên cùng một hệ thống bằng việc cách ly chúng với nhau

- Hỗ trợ cơ chế tự phục hồi, giảm thiểu việc truyền dẫn lỗi và thời gian chết

- Tăng cường tính bảo mật bằng cách ngăn chặn việc truy cập trái phép

- Tích hợp với nhiều tính năng nền tảng khác của Sun 10

Solaris 10 được thiết kế để duy trì nguồn tài nguyên quan trọng nhất đối với người dùng: đó là thời gian Mỗi một giây hệ thống ngừng hoạt động, đồng nghĩa với việc người dùng phải trả chi phí đó, và mỗi giây mà các nhà quản trị hệ thống sử dụng để khắc phục các sự cố lại càng tốn nhiều chi phí hơn Đặc trưng nổi bật của Solaris 10, Predictive Self Healing, làm việc ở chế độ ngầm luôn đảm bảo cho các ứng dụng kinh doanh và các dịch vụ hệ thống liên tục hoạt động không ngừng nếu phần mềm hoặc phần cứng gặp sự cố Một số đặc tính nổi bật của tính sẵn sàng:

- Dự đoán trước các thành phần lỗi và thực hiện cách ly

- Tự động khởi động lại phần cứng và phần mềm

- Đơn giản hoá việc quản trị hệ thống, giảm tải công việc và lỗi

- Cập nhật online nhằm giảm thiểu thời gian chết của hệ thống

SUN JAVA 2 PLATFORM

- Sửa chữa và nâng cấp phần cứng online

- Chống lỗi dữ liệu và khả năng phục hồi nhanh chóng

Vào năm 1991, một nhóm kỹ sư của hãng SUN, bao gồm Patrick Naughton và James Gosling, đã phát triển ý tưởng về một ngôn ngữ lập trình nhỏ gọn có khả năng thực thi trên các thiết bị như bộ chuyển kênh truyền hình cáp, nhờ vào bộ nhớ hạn chế của chúng Để đảm bảo tính di động, tức là độc lập với các dòng CPU khác nhau, nhóm đã khởi động dự án Green, áp dụng cơ chế thông dịch và máy ảo theo ý tưởng của kỹ sư Niklaus Wirth, người sáng lập ngôn ngữ Pascal.

Hãng SUN phát triển trên nền tảng UNIX và chủ yếu sử dụng ngôn ngữ lập trình C++, do đó ngôn ngữ này thiên về lập trình hướng đối tượng hơn là lập trình thủ tục như Pascal.

Nhóm phát triển ban đầu đã đặt tên cho ngôn ngữ mới là “Oak”, nhưng sau đó đã chuyển đổi sang tên “Java” vì “Oak” đã được sử dụng cho một ngôn ngữ lập trình khác.

Năm 1992, dự án Green đã giới thiệu sản phẩm đầu tiên mang tên “*7”, tuy nhiên sản phẩm này không nhận được sự đón nhận như kỳ vọng Sau đó, nhóm đã phải dành cả một năm để cải thiện và phát triển sản phẩm.

Vào năm 1993 và nửa đầu năm 1994, nhóm phát triển đã tiến hành tiếp thị công nghệ Java Bắt đầu từ năm 1994, sự phát triển của Internet đã mở ra cơ hội lớn cho Java, dẫn đến sự ra đời của trình duyệt HotJava, cho phép nhúng các chương trình Java (applet) Đây là minh chứng rõ ràng cho sức mạnh của Java, nhanh chóng được cộng đồng Internet biết đến và tạo tiền đề cho sự phát triển rực rỡ của Java cho đến ngày nay.

Phiên bản đầu tiên 1.0 của Java ra đời vào năm 1996, sau đó là phiên bản 1.1 mặc dù khá mạnh nhưng cũng còn nhiều hạn chế

Năm 1998, Java đã có bước chuyển mình quan trọng với sự ra đời của phiên bản 1.2, đưa ngôn ngữ này gần hơn tới mục tiêu "viết một lần, chạy khắp nơi" (Write once, Run Anywhere) Phiên bản này được gọi là "Java 2 Standard Edition Software Development Kit Version 1.2" bởi các nhân viên tiếp thị của Java.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006 nói tới sự có mặt đồng thời của 2 phiên bản “Standard Edition” là Micro Edition và Enterprise Edition trong Java

Các phiên bản 1.3 và 1.4 là những bước phát triển tiếp theo của phiên bản 1.2, trong khi phiên bản 1.5, được đổi tên thành phiên bản 5.0, đánh dấu sự tích hợp hoàn chỉnh nhất của các công nghệ Java.

3.2.2 Các đặc trưng của JAVA

Java được biết đến với các đặc trưng sau: a) Tính đơn giản

Java được phát triển dựa trên C++, nhưng đã loại bỏ hoặc thay thế những khái niệm phức tạp như file tiêu đề, con trỏ, cấu trúc, union, quá tải toán tử và lớp cơ sở ảo Trong Java, chỉ có thừa kế đơn, không có tính đa thừa kế như C++, nhưng tính đa thừa kế được thể hiện qua việc sử dụng các Interface.

Như đã trình bày ở trên, Java được phát triển từ C++ nên nó là ngôn ngữ lập trình hướng đối tượng c) Tính phân tán

Java cho phép lập trình truy cập các đối tượng từ xa thông qua các giao thức HTTP, FTP bằng các phương thức như RMI hay Socket

Java là ngôn ngữ lập trình lý tưởng cho các ứng dụng Internet, nhờ vào các công nghệ như JSP và Servlet, cho phép xây dựng các website tương tác với hiệu suất tối ưu Với tính mạnh mẽ của mình, Java đáp ứng tốt nhu cầu phát triển các ứng dụng web phức tạp.

Việc loại bỏ con trỏ trong lập trình không chỉ tăng cường độ tin cậy của chương trình mà còn giúp lập trình viên không phải lo lắng về việc cấp phát và giải phóng bộ nhớ Đặc biệt, trong Java, bộ nhớ được quản lý tự động, điều này góp phần nâng cao tính an toàn cho ứng dụng.

Ngôn ngữ Java được thiết kế để tránh các sự cố:

• Nạp chồng stack lúc runtime

• Ảnh hưởng tới bộ nhớ nằm ngoài phạm vi được cấp phát

• Đọc và ghi file tự do f) Tính trung lập

Các chương trình Java độc lập với hệ điều hành nhờ vào việc mã nguồn không được biên dịch trực tiếp thành mã máy, mà được chuyển đổi thành mã Bytecode Khi mã Bytecode này được chạy trên bất kỳ hệ thống máy tính nào, trình thông dịch Java Virtual Machine (JVM) sẽ chuyển đổi nó thành mã máy tương ứng để thực hiện.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Mã nguồn -> ByteCodes > machine code -

Từ mã nguồn > Bytecodes: Trình biên dịch Jav- a

Từ Bytecodes -> machine code: Trình thông dịch Virtual machine

Máy ảo là phần mềm hoạt động trên nền tảng máy tính ảo, với các lệnh logic điều khiển hoạt động của máy tính Nó có thể được coi là một hệ điều hành thu nhỏ, trong đó JVM tạo ra các lớp trừu tượng cho phần cứng, hệ điều hành và mã đã biên dịch.

Trình biên dịch chuyển mã nguồn thành các lệnh cho máy ảo, không phụ thuộc vào phần cứng cụ thể Trình thông dịch trên từng máy sẽ chuyển đổi các lệnh này thành chương trình thực thi Máy ảo tạo ra một môi trường nội bộ để thực hiện các lệnh một cách hiệu quả.

• Dọn “rác”, thu hồi bộ nhớ cấp cho các biến không còn được sử dụng

Việc không nhất quán của phần cứng làm cho máy ảo phải sử dụng ngăn xếp để lưu trữ các thông tin sau:

• Các “Frame” chứa các trạng thái của các phương thức

• Các toán hạng của mã bytecode

• Các tham số truyền cho phương thức

• Các biến cục bộ g) Tính di động

Khác với C++ và C, các kiểu dữ liệu nguyên thủy trong Java được cấp phát một lượng bộ nhớ cố định, ví dụ kiểu int luôn có kích thước 4 byte (32 bit), trong khi C++ có thể là 2 byte hoặc 4 byte Thiết kế này giúp trình biên dịch tạo ra bytecode đồng nhất trên mọi hệ máy, từ đó phát sinh mã máy theo khuôn dạng cố định.

SUN COMPUTE SERVER TECHNOLOGY

3.3.1 Giới thiệu về Compute Server Technology

Công nghệ máy chủ tính toán (compute server) là một hệ thống gồm các CPU phân tán, hoạt động đồng bộ để giải quyết các bài toán tính toán song song Dự án Compute Server hỗ trợ tính toán song song phân tán trên SUN GRID và đề xuất công nghệ máy chủ tính toán như một công cụ quan trọng cho mô hình grid này.

SUN đã phát triển một môi trường lý tưởng cho các nhà phát triển ngôn ngữ JAVA thông qua NetBeans Vào tháng 3/2006, plug-in Compute Server cho NetBeans IDE được ra mắt nhằm hỗ trợ các nhà phát triển Java sử dụng Sun Grid cho các thực thi phân tán trong tính toán song song Đối với các nhà phát triển Java, plug-in này là công cụ quan trọng khi xây dựng ứng dụng mới, đặc biệt khi có các nhiệm vụ độc lập có thể thực hiện song song Nó cho phép người dùng tận dụng công nghệ Sun Grid Compute Utility như nền tảng cho các thực thi của ứng dụng.

Compute Server Technology bao gồm 3 thành phần:

- Mô hình lập trình, để đơn giản hoá việc thiết kế và phát triển các ứng dụng tính toán song song

- Khung thực thi ứng dụng, để hỗ trợ cho việc thực thi hiệu quả các ứng dụng Compute Server trên Sun Grid Compute Utility

- Và module plug-in cho NetBeans IDE, cho phép phát triển và kiểm thử các ứng dụng Compute Server cục bộ

Mô hình lập trình cung cấp một tập hợp giao diện Java và tương tác hỗ trợ bởi khung thực thi, giúp nhà phát triển xây dựng ứng dụng phức tạp, hiệu suất cao cho Sun Grid với mã Java đơn giản Ngoài ra, việc cài đặt plugin sẽ mở rộng môi trường NetBeans IDE bằng các công cụ chuyên dụng, hỗ trợ tối ưu cho các nhà phát triển ứng dụng Compute Server.

Plug-in là một bộ công cụ giúp đơn giản hóa quy trình phát triển ứng dụng, kiểm thử và gỡ lỗi.

Tất cả công nghệ Compute Server, bao gồm mã nguồn, mã thực thi, ví dụ và tài liệu hướng dẫn, đều được cung cấp miễn phí theo giấy phép Apache 2.0 và có thể dễ dàng tải về từ website Để phát triển ứng dụng Compute Server, cần có J2SE 5.0 và NetBeans 5.0 hoặc phiên bản cao hơn.

3.3.2 Kiến trúc các ứng dụng Compute Server

Công nghệ Compute Server đóng vai trò quan trọng trong việc phát triển các ứng dụng Java, đặc biệt là những ứng dụng sử dụng khuôn mẫu chủ-thợ và nhiều biến thể khác của nó.

Mô hình T2006 cho phép thực thi song song các tác vụ độc lập Trong mô hình này, tiến trình chủ phân phối các tác vụ tính toán đến nhiều tiến trình thợ, giúp chúng thực hiện công việc một cách độc lập và đồng thời Sau khi hoàn thành, các tiến trình thợ sẽ gửi kết quả về cho tiến trình chủ để tiến hành tổng hợp.

Công nghệ Compute Server hỗ trợ hệ tính toán chủ thợ bằng cách tích hợp các thành phần chủ và thợ chung, cùng với các yếu tố hạ tầng khác để điều phối luồng công việc Mã ứng dụng sẽ được tích hợp vào khung lập trình, cho phép tùy biến mã sinh tác vụ chạy trong tiến trình chủ, từ đó tạo ra các tác vụ ứng dụng cụ thể, được phân phối và thực thi bởi các tiến trình thợ.

Mô hình lập trình Compute Server mở rộng khả năng của mẫu tính toán chủ thợ cơ bản, cho phép các nhà phát triển xây dựng ứng dụng dưới dạng chuỗi tuần tự các pha thực thi song song Đầu ra của mỗi pha trở thành đầu vào cho pha tiếp theo, giúp tạo ra các ứng dụng tính toán song song phức tạp hơn mà vẫn giữ được tính đơn giản của mô hình lập trình tổng thể.

Hình 8 - Các ứng dụng Compute

Server có thể được tạo nên bởi một chuỗi các pha thực thi song song

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Công nghệ Compute Server cung cấp kiến trúc phát triển end-to-end, hỗ trợ tiền xử lý và hậu xử lý cục bộ cho các đầu vào và đầu ra của tác vụ Nó bao gồm một lớp ứng dụng và các APIs giúp các nhà phát triển giải quyết các vấn đề phát sinh Các nhà phát triển có thể xây dựng ứng dụng thực thi nội bộ để thu thập và tiền xử lý đầu vào cho ứng dụng lưới Trong quá trình này, họ sử dụng APIs để cung cấp dữ liệu đầu vào và mã ứng dụng cần thiết cho việc thực thi trên Sun Grid Sau khi ứng dụng cục bộ được thực hiện, tài nguyên lưới có thể được tải lên, tác vụ lưới được thực thi và kết quả được tải về Các APIs cũng cho phép trích xuất kết quả từ file đầu ra vừa tải về, giúp các nhà phát triển thực hiện hậu xử lý cục bộ một cách hiệu quả.

Các lớp chính cần phải cài đặt của một ứng dụng Compute Server là:

An application serves as a primary layer that utilizes Compute Server APIs to configure and generate a zip file image, which can be uploaded and executed on the network.

Tác vụ trong Com.sun.computeserver.task.Task là đơn vị công việc thực thi bởi tiến trình thợ, cho phép tạo ra các đối tượng phản hồi, đầu ra và tác vụ mới Các đối tượng phản hồi sẽ quay trở lại bộ sinh tác vụ, trong khi các đối tượng đầu ra có thể được truyền cho pha tiếp theo hoặc trả về cho người sử dụng như kết quả hoàn chỉnh của tác vụ.

Bộ sinh tác vụ Com.sun.computeserver.task.Generator là một công cụ quan trọng trong việc tạo ra các đối tượng tác vụ một cách lặp đi lặp lại Nó nhận phản hồi từ các tác vụ và có khả năng tạo ra các đối tượng đầu ra, giúp tối ưu hóa quy trình làm việc.

3.3.3 Phát triển các ứng dụng Compute Server với NetBeans IDE

Thành phần mở rộng Grid Compute Server cho NetBeans IDE là một phần quan trọng của công nghệ Compute Server, giúp mở rộng môi trường phát triển NetBeans với các tính năng đặc biệt Nó đơn giản hóa việc tạo ra các ứng dụng Compute Server thông qua việc cung cấp dự án, mẫu lớp và trợ giúp trực tuyến Ngoài ra, thành phần này còn cung cấp các công cụ cần thiết để đáp ứng các yêu cầu đặc trưng trong quá trình phát triển tính toán tiện ích.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

SUN N1 GRID ENGINE

3.4.1 Giới thiệu về SUN N1 GRID ENGINE

Vào năm 2000, SUN đã mua lại Gridware, một công ty chuyên về phần mềm quản lý tài nguyên tính toán có trụ sở tại San Jose, California và Regensburg, Germany Ngay sau đó, SUN phát hành phiên bản miễn phí của Gridware cho cộng đồng Solaris và Linux, đổi tên thành Sun Grid Engine Đến năm 2001, Sun công bố mã nguồn và áp dụng mô hình phát triển phần mềm mã nguồn mở.

Dự án Sun Grid Engine là một nỗ lực cộng đồng nguồn mở nhằm phát triển tính toán phân tán, được hỗ trợ bởi Sun Microsystems và quản lý bởi CollabNet Dự án này tập trung vào việc nghiên cứu và phát triển phần mềm quản lý tài nguyên phân tán, phục vụ cho nhiều yêu cầu khác nhau, từ các trung tâm máy tính đến tính toán lưới.

Người dùng thường coi lưới như một tài nguyên tính toán duy nhất, với phần mềm quản lý tài nguyên như N1 Grid Engine tiếp nhận và phân phối công việc dựa trên các chính sách quản lý Họ có thể gửi hàng triệu công việc cùng lúc mà không cần quan tâm đến vị trí thực hiện trên lưới Lưới được cấu trúc thành ba lớp chính, từ các hệ thống đơn lẻ đến các trung tâm siêu tính toán với hàng ngàn đến hàng chục ngàn bộ vi xử lý.

Cluster grids là lớp cơ bản nhất trong hệ thống máy tính, bao gồm một nhóm các máy tính hoạt động đồng bộ để cung cấp một điểm truy cập duy nhất cho người dùng, phục vụ cho một dự án hoặc bộ phận cụ thể.

- Campus grids cho phép dự án hoặc nhiều phòng trong cùng một tổ chức chia sẻ các tài nguyên tính toán

Global grid là một hệ thống tính toán ảo lớn, bao gồm nhiều campus grids từ các tổ chức khác nhau, được phân bố ở những vị trí địa lý xa nhau.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Hình 12 - Ba phân loại lưới chính

N1 Grid Engine 6.1 mang đến sức mạnh và tính linh hoạt cho các campus-grids, cho phép chuyển đổi dễ dàng từ cluster-grids sang campus-grids Phần mềm này hỗ trợ việc hợp nhất tất cả các cluster-grids hiện có trong campus, tối ưu hóa hiệu suất và quản lý tài nguyên.

3.4.2 Nguyên lý hoạt động của Sun Grid Engine [31]

3.4.2.1 Các thao tác hệ thống

Hệ thống Grid Engine thực hiện những nhiệm vụ sau:

 Tiếp nhận công việc được đệ trình từ người dùng

 Xếp đặt các công việc tại một vùng chờ cho đến khi các công việc có thể được thực thi

 Gửi các công việc từ vùng chờ đến các nút thực thi

 Quản lý các công việc đang được thực thi

 Ghi nhật ký thực thi các công việc khi các công việc kết thúc

3.4.2.2 Tìm kiếm tài nguyên phù hợp với các yêu cầu

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Tương tự như hệ thống Grid Engine, có thể xem xét các hoạt động của một ngân hàng để hiểu rõ cơ chế vận hành:

Tại hành lang ngân hàng, hàng chục khách hàng đang chờ được phục vụ, mỗi người có những yêu cầu riêng biệt.

Khách hàng A muốn rút một khoản tiền nhỏ từ tài khoản của mình Ngay sau đó, khách hàng B đến để gặp chuyên gia tư vấn ngân hàng, mong nhận được lời khuyên trước khi thực hiện một thương vụ rủi ro cao Trong khi đó, khách hàng C, đứng trước hai khách hàng A và B, lại đang tìm cách vay một khoản tiền lớn, cùng với 8 khách hàng khác đang chờ đợi.

Khách hàng có nhu cầu đa dạng yêu cầu các loại dịch vụ ngân hàng khác nhau, dẫn đến sự thay đổi trong mức độ phục vụ Một ngày, ngân hàng có thể có nhiều nhân viên sẵn sàng hỗ trợ khách hàng rút tiền, trong khi vào thời điểm đó, chỉ có 1-2 nhân viên phụ trách cho vay Tuy nhiên, vào những ngày khác, tình hình phục vụ có thể hoàn toàn khác, với số lượng nhân viên cho vay tăng lên.

Khách hàng thường phải chờ đợi không cần thiết, dẫn đến sự không hài lòng Nhiều khách hàng có thể được phục vụ nhanh chóng hơn nếu yêu cầu của họ được nhận diện kịp thời và chuyển đến các nguồn lực đang sẵn có.

Nếu hệ thống Grid Engine được ví như một người quản lý ngân hàng, các dịch vụ sẽ được tổ chức lại một cách hiệu quả hơn Khi khách hàng bước vào ngân hàng, họ sẽ cần cung cấp tên, thẻ và yêu cầu giao dịch Thời gian đến của mỗi khách hàng sẽ được ghi lại, từ đó ngân hàng có thể phục vụ khách hàng theo thứ tự hợp lý.

1 Các khách hàng có yêu cầu phù hợp với các tài nguyên đang nhàn rỗi

2 Các khách hàng có yêu cầu với độ ưu tiên cao nhất

3 Các khách hàng đã đợi tại hành lang với thời gian lâu nhất Hình 13 - Sun Grid Engine

Dưới sự quản lý của Grid Engine, nhân viên có khả năng phục vụ nhiều khách hàng cùng lúc, với phần mềm này tối ưu hóa việc phân bổ khách hàng mới cho nhân viên có tải trọng thấp nhất và phù hợp nhất Là một người quản lý, Grid Engine thiết lập các chính sách phục vụ nhằm nâng cao hiệu quả công việc.

1 Cung cấp các dịch vụ ưu tiên cho các khách hàng thương mại, vì các khách hàng này mang lại nhiều lợi nhuận cho ngân hàng

2 Đảm bảo rằng một nhóm khách hàng nào đó phải được phục vụ tốt, vì nhóm khách hàng này đã từng được phục vụ không tốt lắm trước đây

3 Đảm bảo rằng các khách hàng có hẹn trước phải được đáp ứng kịp thời

4 Cung cấp dịch vụ ưu tiên cho một số khách hàng nào đó, vì đây là những khách hàng có độ ưu tiên cao. o Những chính sách này có thể được thực thi, được giám sát và điều chỉnh tự động bởi hệ thống quản lý Grid Engine Các khách hàng có sự ưu tiên nên được phục vụ nhanh hơn Những khách hàng như vậy cần phải nhận được nhiều sự quan tâm hơn của các nhân viên Trình quản lý Grid Engine sẽ nhận ra những khách hàng không có tiến triển gì và sẽ lập tức điều chỉnh mức độ phục vụ tuân theo chính sách phục vụ của ngân hàng

3.4.2.3 Các công việc và các hàng đợi

Trong hệ thống Grid Engine, công việc tương tự như khách hàng trong ngân hàng, được xếp vào khu vực chờ thay vì hành lang Các hàng đợi phục vụ công việc tương ứng với nhân viên ngân hàng, với mỗi công việc có yêu cầu riêng biệt về bộ nhớ, tốc độ thực thi và giấy phép phần mềm Chỉ những hàng đợi nhất định mới có khả năng cung cấp dịch vụ phù hợp cho từng loại công việc.

Phần mềm Grid Engine quản lý các tài nguyên và các yêu cầu theo cách sau:

Để đệ trình một công việc cho Grid Engine, người dùng cần khai báo hồ sơ công việc, bao gồm việc nhập định danh của mình và nguồn gốc từ dự án hoặc nhóm người dùng Thời điểm đệ trình công việc cũng sẽ được lưu trữ trong hệ thống.

Message Passing Interface

Trong lĩnh vực lập trình song song, nhiều mô hình như chia sẻ bộ nhớ, đa luồng, truyền thông điệp và song song dữ liệu được áp dụng phổ biến Trong số đó, mô hình truyền thông điệp hiện đang được sử dụng rộng rãi trong các ứng dụng tính toán song song.

Mô hình này áp dụng cho các hệ thống bộ nhớ phân tán

Chương trình theo mô hình này bao gồm nhiều chương trình độc lập chạy trên các nút, mỗi chương trình có chuỗi lệnh và bộ nhớ riêng Mỗi chương trình con được gán một định danh duy nhất và chúng tương tác thông qua việc gửi và nhận thông điệp Việc truyền dữ liệu thường cần sự hợp tác giữa các tiến trình, ví dụ, một thao tác truyền dữ liệu phải đi kèm với một thao tác nhận dữ liệu tương ứng.

Thư viện truyền thông điệp phổ biến nhất hiện nay là MPI (Message Passing Interface), bao gồm các hàm C, C++ và Fortran để truyền thông giữa các tiến trình MPI là kết quả của hơn 2 năm thảo luận từ MPI Forum, với sự tham gia của khoảng 60 người từ 40 tổ chức khác nhau, bao gồm các nhà cung cấp hệ thống song song, phòng thí nghiệm quốc gia và các trường đại học danh tiếng Thư viện này được thiết kế nhằm tận dụng tối đa các ưu thế của các hệ thống truyền thông điệp hiện có.

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Hình 16 - Truyền thông điệp giữa các máy

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

XÂY DỰNG HỆ THỐNG THỬ NGHIỆM -

THÀNH PHẦN CỦA HỆ THỐNG

Hình 17 - Sơ đồ hệ thống Sun Grid Engine thử nghiệm

Exe Host 1 Exe Host 2 Exe Host 3 Exe Host 4

Exe Host 5 Exe Host 6 Exe Host 7 Exe Host 8

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

Hệ thống thử nghiệm được xây dựng gồm 2 thành phần:

- Master Host: nút điều khiển tất cả các thành phần cấu thành nên hệ thống Sun Grid Engine, gồm có 1 nút:

+ master.sungrid.hut.vn: chạy trên hệ điều hành Sun 10

- Vùng thực thi (Execution Zones): chứa các nút tính toán, gồm có 8 nút Các nút đều được cài đặt trên hệ điều hành Sun Solaris 10

- Nút điều khiển được cài đặt dựa trên công nghệ ảo hoá, sử dụng phần mềm VMWARE Server

+ 1 bộ xử lý Intel Pentium D CPU 3.4GHz

+ Dung lượng bộ nhớ: 512 MB

- Các nút thực thi được cài đặt trên các máy Sun Blade 1500 64bit

+ 1 bộ vi xử lý UltraSPARC IIe 650MHz

+ Dung lượng bộ nhớ 512 MB

TRIỂN KHAI HỆ THỐNG

4.2.1 Cài đặt nút điều khiển

• Cài đặt Hệ điều hành Solaris 10

• Cài đặt Sun Java 2 Platform, Standard Edition (J2SE) Development Kit 5.0 và NetBeans 5.0 cho việc phát triển ứng dụng Java

• Cài đặt Compute Server technology để tăng tốc quá trình phát triển các ứng dụng tính toán tiện ích dựa trên ngôn ngữ Java.

• Cài đặt MPICH phiên bản 1.2.7

• Thêm các tài khoản người dùng để chia sẻ giữa các nút và tạo ra các file mặc định cshrc và profile

• Cài đặt và cấu hình Sun N1 Grid Engine

• Thêm các tài khoản người dùng, thiết lập các biến môi trường và kiểm thử

SV: Phan Thanh Liêm - Lớp CH CNTT 2006

4.2.2 Cài đặt các nút thực thi

• Cài đặt Hệ điều hành Solaris 10

• Cài đặt Sun Java 2 Platform, Standard Edition (J2SE) Development Kit 5.0

• Cài đặt MPICH phiên bản 1.2.7

• Thêm các tài khoản người dùng để chia sẻ giữa các nút và tạo ra các file mặc định cshrc và profile

• Cài đặt và cấu hình Sun N1 Grid Engine

• Thêm các tài khoản người dùng, thiết lập các biến môi trường và kiểm thử

• Thêm các nút thực thi vào hệ thống N1GE đã có

BỘ CÔNG CỤ ĐO HIỆU NĂNG LINPACK

4.3.1 Linpack Để đo hiệu năng của các hệ thống siêu máy tính, trên thế giới hiện đang sử dụng bộ công cụ đo High Performance LINPACK (HPL) [23] Công cụ này cho phép thực hiện đo hiệu năng hệ thống trong khi thực hiện giải một hệ phương trình tuyến tính Ax=b với kích thước ma trận A là tuỳ biến Hiện nay có

HPL có hai phiên bản: phiên bản 1.0 ra mắt vào tháng 1/2004 và phiên bản 2.0 được phát hành vào tháng 9/2008 Trong quá trình thực nghiệm, tác giả đã sử dụng phiên bản HPL 2.0.

Phép đo hiệu năng của LINPACK chủ yếu dựa trên việc giải hệ phương trình tuyến tính Ax = b, trong đó A là ma trận vuông cấp N, còn x và b là các vector có kích thước N.

Có thể biểu diễn như sau (với m = n = N)

Ma trận A sẽ được phân tích thành tích của 2 ma trận tam giác L và U:

A = L.U, với L là ma trận tam giác trên, U là ma trận tam giác dưới

Để đảm bảo tính ổn định trong tính toán, thuật toán phân tích thừa số sử dụng phương pháp xác định phần tử trụ theo từng hàng Phần tử trụ theo hàng được xác định là phần tử có giá trị tuyệt đối lớn nhất, và từ phần tử này, các thao tác biến đổi ma trận sẽ được thực hiện.

Nghiệm x sẽ được xác định sau khi giải 2 hệ phương trình:

Quá trình phân tích ma trận A thành tích L.U đòi hỏi độ phức tạp tính toán lên đến (2/3)*N^3 flops Đồng thời, việc giải hai hệ phương trình có độ phức tạp là 2*N^2 flops Khi kích thước N tăng lên, thời gian để phân tích ma trận A sẽ ngày càng chiếm ưu thế trong tổng thời gian xử lý.

Để tối ưu hóa hiệu năng của hệ thống, người dùng cần thiết lập các thông số đo hiệu năng thông qua file "HPL.dat" và thực hiện đo lường với nhiều bộ thông số khác nhau Quá trình này giúp lựa chọn ra bộ thông số có kết quả tốt nhất, tương ứng với hiệu năng toàn hệ thống cao nhất.

Hình 18 - Nội dung của một file "HPL.dat"

Dòng Nội dung file Ý nghĩa từng d

2 Innovative Computing Laboratory, University of Tennessee

3 HPL.out output file name (if any) T ên file log là HPL.out

4 8 device out (6=stdout,7=stderr,file) Thiết bị xuất kết quả ra

+ 6:màn hình, + 7:lỗi, + Khác 6 và 7:xuất ra dòng 3

5 1 # of problems sizes (N) Số các kích cỡ ma trận-N kiểm tra

6 1000 Ns Giá trị các Kích cỡ ma tr ngăn cách nhau bởi dấu spa

7 6 # of NBs Số các block size sẽ thực

8 200 210 220 230 240 250 NBs Giá trị các block size tươ

9 0 PMAP process mapping (0=Row-,1=Column-major) Ánh xạ tiến trình:

+ 0: theo hàng (cho giá t nhất đôi với cluster) + 1: theo cột

10 1 # of process grids (P x Q) Số các lưới xử lý, xác địn

11 1 Ps P là số lượng các bộ xử lý

12 1 Qs Q là số lượng các bộ xử lý

13 16.0 threshold Ngưỡng để so sánh với phần

23 1 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM) Giá trị BCAST=1 tốt n hất c

26 2 SWAP (0=bin-exch,1=long,2=mix)

27 64 swapping threshold Đặt bằng NB

28 0 L1 in (0=transposed,1=no transposed) form - Đặt bằng 0

29 0 U in (0=transposed,1=no transposed) form - Đặt bằng 0

30 1 Equilibration (0=no,1=yes) Luôn đặt bằng 1

31 8 memory alignment in double (> 0) Có thể lấy giá trị 4, 8, 1

Phan Thanh Liêm - Lớp CH CNTT 2006

4.3.3 Khuyến nghị về việc lựa chọn các thông số

Việc lựa chọn các thông số được tham khảo theo các tài liệu [24][36][37]

Kích thước ma trận N được xác định dựa trên dung lượng bộ nhớ chiếm khoảng 80% tổng số RAM của hệ thống, với 20% RAM còn lại dành cho các tiến trình hệ thống Nếu đã biết lượng RAM trống, N có thể tính theo lượng RAM này Mỗi phần tử trong ma trận có độ chính xác kép, chiếm 8 bytes, vì vậy N có thể được tính bằng công thức: N x N x 8 = 80% RAM.

Giá trị NB trong chương trình HPL là rất quan trọng, vì nó phụ thuộc vào bộ nhớ và mục tiêu chính là xác định giá trị N lớn nhất có thể trước khi xảy ra hiện tượng tráo đổi bộ nhớ Để đảm bảo hiệu suất tối ưu, N cần phải chia hết cho NB, nhằm tránh tình trạng mất cân bằng tải trong quá trình xử lý công việc, do phải tính toán phần ma trận dư thừa.

Để tối ưu hóa giá trị NB, nên bắt đầu với các giá trị nhỏ như 16, 32 hoặc 48, sau đó tăng dần 16 đơn vị cho đến khi tìm được hiệu năng tốt nhất Khoảng giá trị NB được xác định là [Nbmin= 16; Nbmax%6] Vì giá trị NB tối ưu không phụ thuộc vào N, chỉ cần thực hiện khảo sát trên một tập hợp nhỏ các nút để tiết kiệm thời gian Thông thường, việc khảo sát giá trị NB được thực hiện với kích thước ma trận N/4 hoặc N/2.

+ Khi đã chọn được giá trị NB tốt nhất, thực hiện tinh chỉnh N để tìm ra giá trị N lớn nhất với hiệu năng tốt nhất có thể.

CHẠY THỬ NGHIỆM

4.4.1 Đo hiệu năng trên 1 nút

- Thực hiện đo hiệu năng ngay trên chính Master Host.

- Lượng RAM còn trống trên Master host: 350 MB

- Khoảng giá trị NB gồm có 16 giá trị = [16, 32, 48, 64, 80, 96, 112, 128,

- Theo công thức tính N ở trên, ta có N ≈

350 ≈ 6,773 Do N cần chia hết cho NB, nên Nmax = (6773 div NB) * NB

- Khoảng giá trị N = [Nmax/4, Nmax + NB, … , Nmax]

- Do chỉ sử dụng 1 bộ vi xử lý nên P và Q đều bằng 1 hay [P,Q] = [1, 1]

Sau quá trình chạy đo hiệu năng, kết quả thu được bộ thông số tương ứng với hiệu năng cao nhất như sau:

4.4.2 Đo hiệu năng trên 8 nút

- Thực hiện đo hiệu năng ngay trên 8 nút: từ exe1 đến exe8

Phan Thanh Liêm - Lớp CH CNTT 2006

- Lượng RAM còn trống trên mỗi host: 50 MB2

- Tổng lượng RAM trên toàn hệ thống: 250 MB x 8 = 2GB

- Khoảng giá trị NB gồm có 16 giá trị = [16, 32, 48, 64, 80, 96, 112, 128,

- Theo công thức tính N ở trên, ta có N ≈

Do N cần chia hết cho NB, nên đối với mỗi giá trị NB ta có giá trị N lớn nhất là

- Khoảng giá trị N cần khảo sát = [Nmax/4, Nmax/4+NB, … , Nmax]

- 4 cặp giá trị [P, Q], lần lượt là [1, 8]; [2, 4]; [4, 2]; [8, 1]

Sau quá trình chạy đo hiệu năng, kết quả thu được bộ thông số tương ứng với hiệu năng cao nhất như sau:

4.4.3 Qmon - Giao diện đồ hoạ quản lý các tác vụ

* Khởi tạo Qmon Main Control Window

Hình 19 - Qmon Main Control Window

* Hiển thị danh sách các hàng đợi

Phan Thanh Liêm - Lớp CH CNTT 2006

* Hiển thị danh sách các nút

Phan Thanh Liêm - Lớp CH CNTT 2006

KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN -

NHỮNG KẾT QUẢ ĐÃ THỰC HIỆN ĐƯỢC TRONG LUẬN VĂN

Trong luận văn này, tác giả đã thực hiện được những công việcsau:

• Tìm hiểu tổng quan về lưới tính toán và lưới hướng kinh tế

Khảo sát và so sánh mô hình lưới kinh tế thực tế giúp nắm bắt hiện trạng phát triển, từ đó xác định các vấn đề và bài toán cụ thể cần giải quyết.

• Đề xuất những giải pháp phù hợp với xu hướng phát triển để giải quyết các vấn đề đó tại Việt Nam

Nghiên cứu và triển khai công nghệ Sun Grid Engine bao gồm việc cài đặt thành công hệ thống trên nút điều khiển và các nút thực thi Đánh giá hiệu năng của hệ thống được thực hiện thông qua bộ công cụ đo hiệu năng High Performance LINPACK.

HƯỚNG PHÁT TRIỂN

5.2.1 Tích hợp với hệ thống Portal

Tác giả đang hướng tới việc phát triển một hệ thống dễ sử dụng cho người dùng bằng cách tích hợp SGE với portal dựa trên công nghệ của Sun Hệ thống này sẽ tương tác với các APIs của Sun Grid Engine, cho phép người dùng trải nghiệm một giao diện Web trực quan.

5.2.2 Tích hợp với Globus Toolkit

Bộ công cụ Globus Toolkit là sản phẩm của dự án Globus, được phát triển qua sự hợp tác của nhiều công ty Mỹ nhằm giải quyết các vấn đề trong tính toán lưới Hiện nay, hàng trăm dự án lớn và nhỏ trên toàn thế giới đang áp dụng Globus Toolkit để xây dựng cơ sở hạ tầng và triển khai ứng dụng Hệ thống tính toán phân cụm dựa trên công nghệ của SUN đã được xây dựng và thử nghiệm thành công Để tận dụng sức mạnh của hệ thống này trong một trường đại học hoặc tổ chức, tác giả dự kiến kết nối Sun Grid với Globus Toolkit và BKGrid, một sản phẩm của Trung tâm Tính toán Hiệu năng cao - ĐHBKHN.

5.2.3 Xây dựng LiveCD cài đặt các nút thực thi

Với số lượng các nút xử lý trong một trường đại học là khá lớn (3000-

Tác giả đang phát triển một LiveCD tích hợp sẵn các thành phần của SGE để đơn giản hóa quá trình cài đặt các nút thực thi Với LiveCD này, người dùng có thể nhanh chóng biến bất kỳ máy tính nào thành nút thực thi mà không gây ảnh hưởng đến hệ thống hiện tại.

Phan Thanh Liêm - Lớp CH CNTT 2006 đã cung cấp dữ liệu trên hệ thống Việc xây dựng một lưới tính toán cỡ trung giờ đây trở nên dễ dàng hơn, nhờ vào việc

5.2.4 Một số công việc khác:

Ngoài ra, hệ thống sẽ được tích hợp thêm các thành phần:

• FlexLM, bộ quản lý giấy phép phần mềm

Gridway-Globus là một bộ siêu lập lịch mạnh mẽ, cho phép chia sẻ tài nguyên tính toán một cách tin cậy và hiệu quả Hệ thống này hỗ trợ quản lý tài nguyên quy mô lớn, được điều phối bởi nhiều hệ thống lập lịch nội bộ khác nhau như PBS, SGE, LSF và Condor Gridway-Globus có khả năng hoạt động trong cùng một tổ chức hoặc trải rộng trên nhiều miền quản trị khác nhau.

Phan Thanh Liêm - Lớp CH CNTT 2006

Ngày đăng: 22/01/2024, 17:09

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w