Giải hệ phƣơng trình tuyến tính kích thước lớn trên nền tảng grid computing

  • Số trang: 69 |
  • Loại file: PDF |
  • Lượt xem: 15 |
  • Lượt tải: 0
nganguyen

Đã đăng 34173 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Đức Thịnh GIẢI HỆ PHƢƠNG TRÌNH TUYẾN TÍNH KÍCH THƢỚC LỚN TRÊN NỀN TẢNG GRID COMPUTING KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hƣớng dẫn: Tiến sĩ. Nguyễn Minh Hằng HÀ NỘI - 2010 Lời cảm ơn Trước hết là lời cảm ơn sâu sắc của em đến những người đã giúp đỡ em hoàn thành khóa luận tốt nghiệp này, một dấu mấu quan trọng trong cuộc đời và sự nghiệp của em. Em xin chân thành cảm ơn Khoa công nghệ thông tin trường đại học Công Nghệ Đại học quốc gia Hà Nội đã tạo điều kiện cho em được thực hiện khóa luận này. Khóa luận sẽ không thể hoàn thành nếu thiếu sự chỉ bảo tận tình của TS.Nguyễn Minh Hằng, người đã định hướng, hỗ trợ em trong suốt thời gian 3 tháng thực hiện khóa luận. Em xin chân thành cảm ơn cô. Một lời cảm ơn từ đáy lòng con xin được gửi đến cha mẹ, những người đã nuôi nấng con thành người để được có ngày hôm nay. Em xin cảm ơn các quý thầy cô đã dạy dỗ em trong suốt 4 năm học ở nhà trường, cung cấp cho em những kiến thức quý báu để bước vào đời. Cảm ơn các bạn của tôi đã là những người động viên tinh thần cũng như ở bên tôi giúp đỡ tôi khi tôi gặp khó khăn. Thời gian 3 tháng vừa qua, mặc dù đã cố gắng để hoàn thành khóa luận một cách tốt nhất nhưng vẫn không thể tránh nổi những sai sót. Em xin kính mong nhận được sự góp ý cũng như chỉ bảo của quý thầy cô. Xin chân thành cảm ơn Sinh viên Nguyễn Đức Thịnh Mục lục Lời mở đầu .................................................................................................1 Tóm tắt khóa luận.......................................................................................3 Chương 1 : Tổng quan về công nghệ Grid Computing .............................4 1.1. Lịch sử phát triển của công nghệ Grid ............................................................ 4 1.2. Khái niệm ......................................................................................................... 5 1.3. Các kiểu tài nguyên của Grid ........................................................................... 6 1.3.1. Tài nguyên tính toán ............................................................................................ 6 1.3.2. Tài nguyên lưu trữ ............................................................................................... 6 1.3.3. Phương tiện liên lạc ............................................................................................. 6 1.3.4. Phần mềm, ứng dụng ........................................................................................... 7 1.3.5. Các thiết bị đặc biệt ............................................................................................. 7 1.4. Phân lọai các hệ thống Grid ............................................................................. 7 1.4.1. Grid Tính toán (Computation Grid) ..................................................................... 7 1.4.2. Grid Dữ liệu (Data Grid) ..................................................................................... 8 1.4.3. Scavenging Grid .................................................................................................. 8 1.5. Kiến trúc Grid .................................................................................................. 8 1.5.1. Bản chất Kiến trúc Grid ....................................................................................... 8 1.5.2. Chi tiết Kiến trúc Grid tổng quát ....................................................................... 10 1.5.2.1. Tầng Fabric.................................................................................................. 10 1.5.2.2. Tầng Connectivity ....................................................................................... 11 1.5.2.3. Tầng Resource ............................................................................................. 12 1.5.2.4. Tầng Collective ........................................................................................... 13 1.5.2.5. Tầng Application ......................................................................................... 13 1.6. Grid computing đem lại những lợi ích gì ? .................................................... 13 1.6.1. Khai thác tối đa tài nguyên xử lý ....................................................................... 13 1.6.2. Khả năng xử lý song song.................................................................................. 14 1.6.3. Chia sẽ tài nguyên ảo và tổ chức ảo .................................................................. 14 1.6.4. Sự truy cập đến các tài nguyên khác.................................................................. 14 1.6.5. Cân bằng tài nguyên .......................................................................................... 15 1.6.6. Độ tin cậy ........................................................................................................... 16 Chương 2: Globus Toolkit 4 ....................................................................17 2.1. Khái niệm về Globus...................................................................................... 17 2.2. Nguyên nhân thúc đẩy sự phát triển của Globus ........................................... 18 2.3. Kiến trúc Globus ............................................................................................ 19 2.3.1. Các thành phần thường trực ............................................................................... 19 2.3.1.1. Java WS Core .............................................................................................. 19 2.3.1.2. C WS Core................................................................................................... 19 2.3.2. Các thành phần bảo mật ................................................................................. 19 2.3.2.1. Cơ bản về bảo mật Grid và GSI .................................................................. 20 2.3.3. Các thành phần quản lý dữ liệu ......................................................................... 25 2.3.3.1. GridFTP ....................................................................................................... 25 2.3.3.2. Information services .................................................................................... 26 2.3.3.3. Index Service ............................................................................................... 27 2.3.4. Các thành phần quản lý tài nguyên .................................................................... 27 2.3.4.1. Kiến trúc quản lý tài nguyên của Globus Toolkit ....................................... 27 2.3.4.2. Chi tiết các thành phần ................................................................................ 29 2.3.4.2.1. GRAM ................................................................................................... 29 2.3.4.2.2. Pre-WS GRAM ..................................................................................... 32 2.3.4.2.3. WS-GRAM ........................................................................................... 34 Chương 3 : MPICH và MPICH-G2 .........................................................40 3.1. MPI ................................................................................................................. 40 3.2. MPICH ........................................................................................................... 41 3.3. MPICH-G2 ..................................................................................................... 41 3.3.1. Quá trình thực thi một ứng dụng ....................................................................... 42 Chương 4 : Thí nghiêm triển khai hệ thống Grid cơ bản cho mục đích tính toán song song sử dụng Globus Toolkit và MPICH-G2 ..................44 4.1. Triển khai Globus Toolkit .............................................................................. 44 4.1.1. Chuẩn bị về phần cứng và phần mềm hệ thống ................................................. 44 4.1.2. Cài đặt Globus Toolkit ....................................................................................... 45 4.1.3. Cấu hình các thành phần của globus toolkit ...................................................... 47 4.1.3.1. Cấu hình bảo mật ......................................................................................... 47 4.1.3.2. Cấu hình dich vụ GridFTP .......................................................................... 50 4.1.3.3. Cấu hình gatekeeper .................................................................................... 51 4.1.3.4. Cấu hình WS GRAM .................................................................................. 52 4.2. Triển khai MPICH-G2 ................................................................................... 53 Chương 5 : Chạy và đánh giá hiệu năng của hệ thống Grid ....................54 5.1. Giới thiệu về 3 bài toán sẽ được thử nghiệm ................................................. 54 5.1.1. Tính toán số PI ................................................................................................... 54 5.1.2. Hệ phương trình tuyến tính ................................................................................ 54 5.1.3. Bài toán quy hoạch tuyến tính ........................................................................... 55 5.2. Cách thức chạy 1 bài toán trên hệ thống Grid được xây dựng bởi 2 công cụ Globus Toolkit và MPICH .................................................................................... 57 5.3. Kết quả chạy các chương trình và đánh giá kết quả ...................................... 59 5.3.1. Kết quả chạy chương trình tính số PI ................................................................ 59 5.3.2. Kết quả chạy chương trình giải hệ phương trình tuyến tính .............................. 59 5.3.3. Kết quả giải bài toán quy hoạch tuyến tính ....................................................... 60 5.3.4. Nhận xét chung .................................................................................................. 62 Kết luận ....................................................................................................63 Tài liệu tham khảo ....................................................................................64 Lời mở đầu Trong thập niên qua, nền công nghệ thông tin thế giới phát triển đã đóng góp rất nhiều vào sự phát triển chung của thế giới. Chúng ta có thể bắt gặp những ứng dụng của công nghệ thông tin ở khắp mọi nơi, giờ đây nhiều người sở hữu máy tính cá nhân, sở hữu những chiếc điện thoại, cập nhập thông tin qua những trang web, kết nối với nhau qua những phần mềm chat… Đấy là những thứ hiện hữu hàng ngày mà chúng ta trực tiếp sờ thấy và sử dụng nó, ẩn sau nó là những nghiên cứu, những công nghệ được rất nhiều nhà khoa học cũng như phát triển trên thế giới nghiên cứu để đóng góp vào sự phát triển của nền công nghệ thông tin nói riêng và nền khoa học thế giới nói chung. Khi nói đến máy tính, một khái niệm hay được nhắc đến là những chiếc máy tính để bàn nhỏ gọn hay những chiếc laptop cá nhân. Nhưng đó là những thiết bị cá nhân giúp chúng ta giải trí, làm việc, còn với những chiếc máy tính phải xử lý lượng dữ liệu từ khắp nơi trên thế giới một cách thường xuyên và liên tục thì sao. Khi đó ,chúng ta lại được bắt gặp khái niệm siêu máy tính (Super Computer) . Những siêu máy tính trên thế giới được xây dựng rất đắt tiền với hàng trăm ngàn hay hàng triệu bộ vi xử lý, để đầu tư cho những hệ thống máy như vậy tốn rất nhiều tiền của cho việc triển khai cũng như bảo dưỡng, với mục đích sử dụng kết nối những người dùng hay tổ chức có chung một mục đích xử lý hay tận dụng tài nguyên máy tính của bất kỳ người dùng máy tính nào để tạo thành một hệ thống mạnh mẽ phục vụ cho việc giải các bài toán về khoa học, thương mại, một lĩnh vực nghiên cứu mới được đưa ra, đó là Grid Computing. Nói một cách tống quát nhất Grid là một loại hệ thống phân tán, bố trí song song, cho phép linh hoạt chia sẻ, tuyển lựa và tập hợp các nguồn tài nguyên độc lập và rải rác về địa lý, tùy theo khả năng sẵn có, công suất, hoạt động, chi phí và yêu cầu về chất lượng dịch vụ của người sử dụng. Grid Computing có rất nhiều ưu điểm mà có thể áp dụng cho việc nghiên cứu cũng như những ưu điểm có thể áp dụng cho doanh nghiệp. Trên thế giới, ý tưởng về Grid Computing đã được hình thành và nghiên cứu từ rất lâu nhưng thực sự bùng nổ vào vài năm trở lại đây khi được các tổ chức cũng như tập đoàn lớn trên thế giới nghiên cứu và triển khai. Tại Việt Nam, công việc nghiên cứu Grid Computing đã được triển khai từ khá lâu và gần đây nhất là đề tài cấp nhà nước “Nghiên cứu, phát triển hệ thống tính toán lưới để hỗ trợ giải quyết các bài toán có khối lượng tính 1 toán lớn (VNGrid)” do PGS.TS. Vũ Đức Thi làm chủ nhiệm cũng đã đạt được một số thành tựu nhất định. Nhận thấy Grid computing là một hướng nghiên cứu đang rất được quan tâm tại ở Việt Nam cũng như thế giới và những lợi ích to lớn mà nó mang lại. Em quyết định chọn đề tài “Giải giải hệ phương trình tuyến tính kích thước lớn trên nền tảng Grid Computing” với mục đích là tìm hiểu Công nghệ Grid là gì ,những khái niệm và đặc điểm liên quan, thí nghiệm tạo một hệ thống Grid nhỏ bằng gói phần mềm GLOBUS TOOLKIT cùng MPICH-G2 để kiểm nghiệm hiệu năng của hệ thống grid khi chạy bài toán Giải hệ phương trình tuyến tính kích thước lớn. 2 Tóm tắt khóa luận 1. Thông tin chung về khóa luận Tên đề tài : Giải hệ phương trình tuyến tính trên nền tảng Grid Computing Giảng viên hướng dẫn : TS.Nguyễn Minh Hằng Sinh viên thực hiện : Nguyễn Đức Thịnh 2. Tóm tắt nội dung khóa luận Khóa luận thực hiện nghiên cứu tìm hiểu các vấn đề chung của công nghệ Grid về mặt khái niệm, kiến trúc của một hệ thống Grid và những ích lợi của Grid mang lại. Cung cấp một cái nhìn tổng quan về Grid. Tìm hiểu mô hình hoạt động của gói phần mềm Globus Toolkit, một gói phần mềm giúp xây dựng một hệ thống Grid, các vấn đề khi thực hiện triển khai tạo dựng một hệ thống Grid với Globus Toolkit. Tìm hiểu về MPICH, MPICH-G2, nguyên tắc hoạt động của MPICH kết hợp với Globus Toolkit để tạo dựng hệ thống Grid phục vụ việc tính toán song song sử dụng ngôn ngữ C và MPI. Thử nghiệm bài toán giải hệ phương trình tuyến tính theo thuật toán song song trên một hệ thống Grid để xem cách thức hoạt động và ưu điểm về khả năng kết hợp xử lý giữa các máy tính khác nhau. 3. Các công cụ đƣợc sử dụng triển khai và thử nghiệm  Globus Toolkit 4.2.1  Centos 5.4  MPICH-1.2.7 3 Chương 1 : Tổng quan về công nghệ Grid Computing 1.1. Lịch sử phát triển của công nghệ Grid Trong những năm gần đây, chúng ta được nghe nhiều đến công nghệ Grid và những ưu điểm của nó. Vậy Grid xuất hiện từ khi nào, từ bao giờ ? Trong quá khứ, những ý tưởng tính toán có liên quan đến Grid đã xuất hiện, với những tên gọi khác nhau và cách tiếp cận khác nhau. Ví dụ như ý tưởng “chia sẻ năng lực tính toán” đã xuất hiện từ những năm 60-70 của thế kỷ XX, lúc đó toàn bộ năng lực tính toán được chia sẻ từ các máy mainframe. Năm 1965, những người phát triển hệ điều hành Multics (tiền thân của hệ điều hành Unix) đã đề cập đến việc sử dụng năng lực tính toán như là một tiện ích, một quan điểm rất gần với quan điểm về Grid hiện nay. Đó là một hệ thống cung cấp năng lực tính toán tương tự như hệ thống cung cấp điện, nước hiện đang được sử dụng trong cuộc sống hàng ngày. Người dùng khi muốn sử dụng tài nguyên tính toán để xử lý công việc, chỉ cần cắm thiết bị vào hệ thống cung cấp, sử dụng và trả tiền giống như khi cắm thiết bị điện vào lưới điện. Tuy trước đó đã có nhiều ý tưởng về Grid nhưng nguồn gốc của Grid chính thức được xác định vào năm 1990, khi thuật ngữ “siêu tính toán” (metacomputing) ra đời, dùng để mô tả các dự án kết nối các trung tâm siêu máy tính của Mỹ nhằm kết hợp sức mạnh xử lý của nhiều siêu máy tính lại với nhau. Đến năm 1995, 2 dự án siêu tính toán quan trọng, ảnh hưởng lớn đến các công nghệ nền tảng trong các dự án Grid ngày nay là FAFNER (Factoring via NetworkEnabled Recursion) và I-WAY(Information Wide Area Year) ra đời. Khái niệm Grid ra đời ở phòng thí nghiệm Argonne National Laboratory vào tháng 7/1997, sau đó được đưa vào quyển sách "The Grid: Blueprint for a New Computing Infrastructure" viết bởi tiến sỹ Ian Foster (Argonne National Laboratory) và Carl Kesselman (University of Southern California) năm 1998. Ian Foster đã từng tham gia dự án I-WAY, Carl Kesselman là người tham gia dự án Globus Toolkit, một dự án nền tảng của công nghệ Grid và Metacomputing. 4 Từ đó đến nay, việc phát triển công nghệ Grid trở nên rất sôi động với sự tham gia nghiên cứu, đầu tư của nhiều tổ chức, tập đoàn công nghệ thông tin, nhiều quốc gia, và đã thu được những thành tựu bước đầu. Có thể nói, việc phát triển và xây dựng hệ thống Grid là sự kế thừa và phát triển các ý tưởng, các công nghệ hiện hành ở mức cao hơn. Sự phát triển không ngừng của cơ sở hạ tầng, phần cứng máy tính, mạng đã giúp các hệ thống Grid ngày nay thực hiện được nhiều điều hơn những ý tưởng trước đây. 1.2. Khái niệm Một định nghĩa về Grid khá hoàn chỉnh được đưa ra bởi tiến sỹ Ian Foster như sau “Grid là một loại hệ thống song song, phân tán cho phép chia sẻ, lựa chọn, kết hợp các tài nguyên phân tán theo địa lý, thuộc nhiều tổ chức khác nhau dựa trên tính sẵn sàng, khả năng, chi phí của chúng và yêu cầu về chất lượng dịch vụ (QoS) của người dùng để giải quyết các bài toán, ứng dụng có quy mô lớn trong khoa học, kỹ thuật và thương mại. Từ đó hình thành nên các “tổ chức ảo” (Virtual Organization (VO)), các liên minh tạm thời giữa các tổ chức và tập đoàn, liên kết với nhau để chia sẻ tài nguyên và/hoặc kỹ năng nhằm đáp ứng tốt hơn các cơ hội kinh doanh hoặc các dự án có nhu cầu lớn về tính toán và dữ liệu, toàn bộ việc liên minh này dựa trên các mạng máy tính” Một hệ thống Grid có những đặc trưng như sau:  Có sự kết hợp, chia sẻ các tài nguyên không được quản lý tập trung Grid tích hợp và phối hợp tài nguyên, người dùng thuộc nhiều vùng quản lý khác nhau, nhiều đơn vị khác nhau trong một tổ chức, hay nhiều tổ chức khác nhau. Công nghệ Grid tập trung giải quyết các vấn đề về bảo mật, chính sách quản trị, chi phí, thành viên,… nảy sinh trong quá trình chia sẻ và sử dụng tài nguyên.  Sử dụng các giao diện và giao thức chuẩn, mang tính mở, đa dụng. Grid được xây dựng trên các giao thức và giao diện tổng quát, đa dụng để giải quyết các vấn đề cơ bản như chứng thực người dùng, phân quyền, tìm kiếm và truy xuất tài nguyên.  Đáp ứng yêu cầu cao về chất lượng dịch vụ. Grid cho phép sử dụng phối hợp các tài nguyên để cung cấp nhiều loại dịch vụ với các mức chất lượng khác nhau, liên quan đến ví dụ như thời gian đáp ứng, hiệu suất, tính sẵn sàng, bảo mật, cho phép kết hợp nhiều kiểu tài nguyên để đáp ứng nhu cầu phức tạp của người dùng. Mục tiêu là phải phối hợp làm sao để khả năng của hệ thống sau khi kết hợp phải lớn hơn hẳn tổng khả năng của từng đơn vị cấu thành nên Grid. 5 1.3. Các kiểu tài nguyên của Grid 1.3.1. Tài nguyên tính toán Đây là tài nguyên phổ biến nhất, là các chu kỳ tính toán (computing cycles) được cung cấp bởi bộ vi xử lý của các thiết bị trong Grid. Các bộ vi xử lý không cần phải cùng loại mà có thể có tốc độ, kiến trúc, chạy phần mềm khác nhau. Có 3 cách để khai thác tài nguyên tính toán của Grid: 1. Cách đơn giản nhất là chạy các ứng dụng hiện có trên một node của Grid thay vì chạy trên máy tính cục bộ. 2. Thiết kế ứng dụng, tách các công việc thành các phần riêng rẽ để có thể thực thi song song trên nhiều bộ xử lý khác nhau. 3. Chạy ứng dụng thực thi nhiều lần trên nhiều node khác nhau trong Grid. 1.3.2. Tài nguyên lƣu trữ Tài nguyên phổ biến thứ nhì trong Grid là tài nguyên lưu trữ. Mỗi thiết bị trong Grid thường cung cấp một số dung lượng lưu trữ phục vụ cho việc thực thi ứng dụng trên Grid. Tài nguyên lưu trữ có thể là bộ nhớ trong, ổ đĩa cứng hoặc các thiết bị lưu trữ khác. Bộ nhớ trong thường dùng để lưu trữ dữ liệu tạm thời cho ứng dụng, trong khi các thiết bị lưu trữ ngoài có thể được sử dụng để tăng không gian lưu trữ, tăng hiệu suất, khả năng chia sẻ và đảm bảo tính tin cậy của dữ liệu. 1.3.3. Phƣơng tiện liên lạc Khả năng liên lạc giữa các máy tính phát triển nhanh chóng đã giúp cho công nghệ Grid trở nên hiện thực, do đó đây cũng là một tài nguyên quan trọng. Ở đây bao gồm việc liên lạc, trao đổi dữ liệu giữa các thành phần trong Grid và giao tiếp giữa Grid với bên ngoài. Một số công việc đòi hỏi một lượng dữ liệu lớn nhưng các dữ liệu này thường không nằm trên máy đang thực thi công việc. Khả năng về băng thông trong những trường hợp như vậy là một tài nguyên then chốt, ảnh hưởng đến khả năng của Grid. Việc giao tiếp với bên ngoài được thực hiện thông qua mạng Internet. Grid có thể sử dụng các kết nối Internet để liên lạc giữa các node. Vì các kết nối này không chia sẻ một đường truyền nên làm tăng băng thông truy cập Internet. Các đường truyền dự phòng đôi khi cần thiết để giải quyết tốt hơn các vấn đề về hư hỏng mạng và truyền dữ liệu lớn. 6 1.3.4. Phần mềm, ứng dụng Grid có thể được cài đặt các phần mềm mà có thể quá mắc để cài trên tất cả mọi máy tính trong Grid. Các phần mềm này chỉ cần được cài trên một số node. Thông qua Grid, khi một công việc cần đến chúng, nó sẽ gửi dữ liệu đến node đã được cài đặt phần mềm và cho thực thi. Đây có thể là một giải pháp tốt để tiết kiệm chi phí về bản quyền phần mềm. 1.3.5. Các thiết bị đặc biệt Là các thiết bị dùng trong khoa học, kỹ thuật như kính viễn vọng, các bộ cảm biến (sensor),… Các thiết bị này chủ yếu thu thập các dữ liệu khoa học, phục vụ cho các bước phân tích, xử lý sau này. Ghi chú: Các tài nguyên trên đây đến từ nhiều nguồn khác nhau, có thể không thuộc quyền quản lý của một tổ chức, của một đơn vị mà có thể thuộc nhiều tổ chức, ở nhiều nơi khác nhau. Một số tài nguyên có thể được sử dụng tự do, trong khi một số khác được sử dụng dưới những chính sách nhất định. Các tài nguyên được “ảo hóa” (virtualize) để che dấu sự phức tạp, đa dạng nhằm đưa ra một cái nhìn thống nhất, đơn giản về toàn bộ tài nguyên trên Grid sao cho dưới mắt của người dùng, các tài nguyên Grid là một khối thống nhất. 1.4. Phân lọai các hệ thống Grid Công nghệ Grid Computing có thể được sử dụng theo nhiều cách khác nhau để giải quyết các loại yêu cầu ứng dụng. Thông thường Grid được phân loại bởi kiểu của ứng dụng cần giải quyết. Có 3 loại Grid như trình bày dưới đây. Tuy nhiên không có ranh giới phân biệt rõ ràng giữa các loại Grid và trong thực tế, các giải pháp Grid thường là sự kết hợp 2 hay nhiều loại khác nhau. 1.4.1. Grid Tính toán (Computation Grid) Loại Grid này tập trung chủ yếu vào việc sử dụng năng lực tính toán. Ở dạng Grid này, phần lớn các node là các máy tính hay các nhóm máy tính(cluster) có năng lực xử lý, tính toán rất lớn. Hình thức thực hiện là chia tác vụ tính toán lớn thành nhiều công việc nhỏ thực thi song song trên các node của Grid. Việc phân tán các tác vụ tính toán trong Grid sẽ làm giảm rất đáng kể toàn bộ thời gian xử lý và tăng khả năng tận dụng hệ thống. Thông thường một hệ thống chính sẽ chia khối dữ liệu cần xử lý thành các phần nhỏ, sau 7 đó phân phối đến các node trên Grid. Mỗi node sẽ thực hiện xử lý dữ liệuvà trả kết quả về hệ thống chính để hệ này tổng hợp và trình diễn kết quả toàn cục cho người dùng 1.4.2. Grid Dữ liệu (Data Grid) Ở đây, không gian lưu trữ là tài nguyên. Một Grid Dữ liệu chịu trách nhiệm lưu trữ và cung cấp khả năng truy cập dữ liệu cho nhiều tổ chức khác nhau. Người dùng không cần biết chính xác vị trí dữ liệu khi thao tác với dữ liệu. Các cơ sở dữ liệu, đặc biệt các cơ sở dữ liệu liên hợp, đóng vai trò quan trọng trong các Grid Dữ liệu, nhất là khi có nhiều nguồn dữ liệu và xuất hiện nhu cầu kết hợp các thông tin từ các nguồn dữ liệu này. Các Grid Dữ liệu có thể được sử dụng trong lĩnh vực khai thác dữ liệu(data mining) hoặc các hệ thống thương mại thông minh. Trong trường hợp này, không chỉ có hệ thống file hay các cơ sở dữ liệu mà toàn bộ dữ liệu của tổ chức cần tập hợp lại. Ở đây có thể phải kết hợp giữa Grid Dữ liệu và Grid Tính toán. 1.4.3. Scavenging Grid Một Scavenging Grid thường được dùng với một lượng lớn các máy tính để bàn. Các máy tính thường được kiểm tra định kỳ để xem khi nào bộ xử lý và các tài nguyên khác rảnh rỗi để thực hiện các tác vụ Grid. Chủ nhân của máy để bàn thường có quyền xác định khi nào thì chia sẻ chiếc máy của mình. 1.5. Kiến trúc Grid 1.5.1. Bản chất Kiến trúc Grid “Tổ chức ảo”(VO) là đơn vị cơ bản quan trọng trong hệ thống Grid. Việc thiết lập, quản lý, khai thác, chia sẻ tài nguyên giữa các tổ chức ảo đòi hỏi phải có kiến trúc hệ thống mới, kiến trúc Grid. Kiến trúc Grid dưới đây được xây dựng dựa trên quan niệm “để các VO hoạt động hiệu quả đòi hỏi phải thiết lập được các quan hệ chia sẻ với bất kỳ đơn vị tham gia tiềm năng nào”. Để làm được điều này, vấn đề “liên kết hoạt động” (interoperability) cần phải được tập trung giải quyết. Trong môi trường mạng, “liên kết hoạt động” đồng nghĩa với việc sử dụng các protocol chung. Do đó, kiến trúc Grid sẽ là kiến trúc protocol, với các protocol xác định các cơ chế nền tảng để người dùng và nhà cung cấp tài nguyên thương lượng, thiết lập, quản lý và khai thác các mối quan hệ chia sẻ tài nguyên. 8 Kiến trúc Grid phải là kiến trúc dựa chuẩn, hướng mở, để dễ mở rộng, liên kết hoạt động tốt, có tính khả chuyển (portability) cao. Các protocol chuẩn sẽ giúp định nghĩa các service chuẩn, nhờ đó có thể xây dựng các service cao cấp hơn một cách dễ dàng. Sau khi có được kiến trúc Grid, việc tiếp theo là xây dựng các hàm API và các bộ SDK để cung cấp các công cụ cần thiết để phát triển các ứng dụng chạy trên nền Grid. Sở dĩ vấn đề “liên kết hoạt động” được xem là vấn đề cơ bản vì các mối quan hệ chia sẻ có thể phải được thiết lập giữa các bên tham gia khác nhau về các chính sách, giữa các môi trường khác nhau về nền tảng, ngôn ngữ, môi trường lập trình,…Nếu không có nó, các thành viên trong VO sẽ thực hiện các chính sách chia sẻ song phương và không chắc rằng các cơ chế sử dụng cho 2 thành viên này sẽ mở rộng được cho các thành viên khác. Điều này khiến cho việc thành lập các VO động là không thể thực hiện hoặc cũng chỉ thành lập được VO theo một kiểu nào đó mà thôi. Cũng giống như Web đã làm bùng nổ việc chia sẻ thông tin bằng cách cung cấp các protocol và cú pháp chuẩn (HTTP và HTML) dùng cho việc trao đổi thông tin, ở đây cũng cần các protocol và cú pháp chuẩn để chia sẻ tài nguyên. Để giải quyết vấn đề “liên kết hoạt động”, việc xây dựng các protocol là quan trọng. Vì protocol xác định cách các thành phần phân tán trao đổi với nhau để đạt được một mục đích nào đó, xác định các cấu trúc thông tin cần thiết trong quá trình trao đổi. Các VO thường hay thay đổi, nên các cơ chế xác định, chia sẻ và sử dụng tài nguyên cần phải mềm dẻo, gọn nhẹ, để các thỏa thuận chia sẻ tài nguyên có thể được thiết lập, thay đổi một cách nhanh chóng. Các cơ chế chia sẻ không được ảnh hưởng đến các chính sách cục bộ, và phải cho phép các thành viên quản lý được các tài nguyên của họ. Vì các protocol quy định việc giao tiếp giữa các thành viên chứ không quy định thành viên đó phải như thế nào, nên khi dùng các protocol, các chính sách cục bộ được giữ lại. Do đó các protocol được cần đến. Khi đã có các protocol, thì việc xây dựng các service là cần thiết và quan trọng, các service là bản cài đặt cụ thể của các protocol. Việc xây dựng các service cơ bản phục vụ truy cập đến tài nguyên tính toán, dữ liệu, tìm kiếm tài nguyên, lập lịch và đồng bộ hoá, sao chép dữ liệu,… cho phép xây dựng các service cao cấp hơn cho ứng dụng đồng thời trừu tượng hoá các chi tiết về tài nguyên. Cũng cần phải xây dựng các bộ API và SDK, vì các nhà phát triển ứng dụng cần phải có công cụ để hỗ trợ phát triển các ứng dụng phức tạp trong môi trường Grid, người dùng cũng phải có khả năng thực thi được các ứng dụng này. Sức mạnh, tính đúng đắn của ứng dụng, chi phí phát triển và bảo trì là những mối quan tâm 9 quan trọng. Các API và SDK có thể giúp tăng tốc việc phát triển mã, cho phép chia sẻ mã, tăng tính khả chuyển cho ứng dụng. Tất nhiên, API và SDK chỉ hỗ trợ thêm chứ không thể thay thế các protocol được. 1.5.2. Chi tiết Kiến trúc Grid tổng quát Sau gần 10 năm tập trung nghiên cứu, phát triển, tích luỹ kinh nghiệm, các nhà phát triển công nghệ Grid đã có những thống nhất đáng kể về kiến trúc Grid. Một trong những kiến trúc Grid được chấp nhận nhiều nhất được đưa ra bởi Ian Foster,phần dưới đây sẽ giới thiệu về kiến trúc này. Kiến trúc Grid, theo Ian Foster, là một kiến trúc phân tầng như trong hình 1.1 . Các thành phần trong một tầng có chung đặc điểm, tính chất, có thể được xây dựng từ bất cứ tầng dưới nào. Các thành phần được phân tầng dựa theo vai trò của chúng trong hệ thống Grid. Đây là một kiến trúc mở.Kiến trúc này chỉ quy định các yêu cầu chung nhất về thiết kế và triển khai với mục đích chính là để tham khảo. Việc xây dựng, cài đặt cụ thể tuỳ thuộc vào từng dự án, từng lĩnh vực ứng dụng. Dưới đây là chi tiết của kiến trúc: Application (Ứng dụng) Collective (Tầng kết hợp) Resource (Tầng tài nguyên) Connectivity (Tầng kết nối) Fabric (Tầng thiết bị) Hình 1.1.Grid protocol Architecture 1.5.2.1. Tầng Fabric Đây là tầng thấp nhất của kiến trúc, đại diện cho các thiết bị vật lý và toàn bộ tài nguyên của Grid mà các tổ chức, người dùng muốn chia sẻ, sử dụng. Các tài nguyên có thể tồn tại dưới dạng vật lý như các máy tính, hệ thống lưu trữ, các danh mục, tài nguyên 10 mạng, các loại sensor, cũng có thể là các thực thể logic - một thực thể trừu tượng - đại diện cho một tập các tài nguyên vật lý, như hệ thống file phân tán, các cluster,… Trong trường hợp các thực thể logic, việc triển khai có thể liên quan đến các protocol cục bộ (ví dụ các protocol phục vụ dạng truy cập NFS, hoặc protocol quản lý tài nguyên, tiến trình trong cluster,…) nhưng các protocol này không liên quan đến kiến trúc Grid. Các thành phần của tầng Fabric thực hiện các hoạt động cục bộ trên các tài nguyên cụ thể (vật lý lẫn logic) như là bước tiếp sau của các hoạt động chia sẻ tài nguyên của các tầng trên. Do đó, có một mối liên hệ phụ thuộc chặt chẽ giữa các chức năng của tầng Fabric với các hoạt động chia sẻ được hỗ trợ. Các chức năng của tầng Fabric càng mạnh, càng nhiều sẽ cho phép các hoạt động chia sẻ phức tạp, phong phú hơn. Kinh nghiệm cho thấy, việc quản lý tài nguyên ở tầng này ít nhất cũng phải có cơ chế cung cấp thông tin để xác được cấu trúc, trạng thái, năng lực của tài nguyên và cơ chế điều khiển chất lượng dịch vụ. 1.5.2.2. Tầng Connectivity Tầng Connectivity định nghĩa các protocol liên lạc và chứng thực cơ bản cần thiết cho các giao dịch mạng đặc trưng của Grid. Các protocol liên lạc cho phép trao đổi dữ liệu giữa các tài nguyên tầng Fabric. Các protocol chứng thực xây dựng trên các dịch vụ liên lạc nhằm cung cấp các cơ chế mã hóa, bảo mật, xác minh và nhận dạng các người dùng và tài nguyên. Việc liên lạc đòi hỏi các công việc như vận chuyển, định tuyến, đặt tên. Trong tương lai, việc liên lạc của Grid có thể cần các protocol mới, nhưng hiện nay nên xây dựng trên các protocol có sẵn của bộ TCP/IP protocol stack, cụ thể là các tầng Network (IP và ICMP), Transport (TCP,UDP) và Application (DNS,OSPF,…). Về khía cạnh bảo mật của tầng Connectivity, các giải pháp phải dựa trên các chuẩn bảo mật hiện hành khi có thể. Cũng giống như liên lạc, rất nhiều chuẩn bảo mật đã được phát triển với bộ Internet protocol có thể áp dụng được.Việc chứng thực, phân quyền trong môi trường Grid là rất phức tạp. Các công nghệ bảo mật truyền thống chủ yếu tập trung bảo vệ các giao dịch giữa các máy client và server. Trong Grid, việc phân biệt client/server không tồn tại, vì các mỗi tài nguyên trong một lúc nào đó có thể là server (khi nó nhận yêu cầu), một lúc khác lại là client (khi nó đề xuất yêu cầu đến các tài 11 nguyên khác). Do đó, các giải pháp chứng thực cho các môi trường VO nên đạt được các yêu cầu về bảo mật trong Grid như đã giới thiệu. 1.5.2.3. Tầng Resource Tầng Resource dựa trên các protocol liên lạc và chứng thực của tầng Connectivity để xây dựng các protocol, API và SDK nhằm hỗ trợ việc thương lượng, khởi tạo, theo dõi, điều khiển, tính toán chi phí và chi trả cho các hoạt động chia sẻ trên từng tài nguyên riêng lẻ một cách an toàn. Bản cài đặt các protocol của tầng Resource sẽ gọi các chức năng của tầng Fabric để truy cập và điều khiển các tài nguyên cục bộ. Các protocol tầng Resource tập trung toàn bộ vào các tài nguyên riêng lẻ, không quan tâm đến trạng thái toàn cục và các hoạt động trong các tập tài nguyên phân tán. Các protocol tầng Resource được phân thành 2 dạng chính như sau: - Các protocol thông tin Sử dụng để thu thập thông tin về cấu trúc và trạng thái các tài nguyên ví dụ như cấu hình hiện tại, tải hiện tại, chính sách sử dụng,… - Các protocol quản lý Sử dụng để thương lượng truy xuất đến một tài nguyên chia sẻ, xác định rõ, ví dụ, các yêu cầu về tài nguyên (bao gồm luôn việc giữ chỗ tài nguyên và chất lượng dịch vụ) và các thao tác cần được thực hiện như tạo tiến trình, hoặc truy xuất dữ liệu. Do các protocol quản lý chịu trách nhiệm đại diện cho các quan hệ chia sẻ, đảm bảo các hoạt động sử dụng tài nguyên phải phù hợp với các chính sách chia sẻ tài nguyên, bao gồm luôn việc tính toán và chi trả chi phí. Mỗi protocol cũng nên hỗ trợ việc theo dõi trạng thái và điều khiển các hoạt động. Với những yêu cầu như vậy, tập các protocol tầng Resource (và Connectivity) nên nhỏ gọn và tập trung. Các protocol này chỉ nên đáp ứng được các cơ chế chia sẻ với nhiều loại tài nguyên khác nhau (ví dụ, các hệ thống quản lý tài nguyên cục bộ khác nhau) là đủ. Các chức năng chính của tầng Resource cũng giống như của tầng Fabric cộng thêm nhiều ngữ nghĩa mới với cơ chế báo lỗi tin cậy khi hoạt động không thành công. 12 1.5.2.4. Tầng Collective Trong khi tầng Resource tập trung vào các tài nguyên đơn lẻ, tầng Collective chứa các protocol, service, API, SDK không liên hệ đến bất kỳ một tài nguyên cụ thể nào mà thực hiện quản lý toàn cục, tập trung vào các giao tác giữa các tập tài nguyên. Tầng Collective có thể bổ sung thêm nhiều loại hoạt động chia sẻ mới ngoài những gì đã có từ tầng Resource mà không cần bổ sung thêm các yêu cầu mới cho các tài nguyên đang được chia sẻ. Các chức năng của tầng Collective có thể được cài đặt như các service (với các protocol tương ứng), hay như các bộ SDK(với các API tương ứng) được thiết kế để liên kết với ứng dụng. Trong cả hai trường hợp, các cài đặt này có thể được xây dựng trên các protocol và API của tầng Resource và Connectivity. 1.5.2.5. Tầng Application Tầng trên cùng của kiến trúc Grid bao gồm các ứng dụng của người dùng chạy trong một trường VO. Các ứng dụng được xây dựng theo cách sẽ gọi các dịch vụ định nghĩa bởi các tầng phía dưới. Ví dụ : một chương trình phân tích bộ gen người cần phải chạy hàng ngàn tác vụ độc lập, mỗi tác vụ cần nhiều file chứa thông tin từng phần của bộ gen có thể sử dụng các chức năng Grid sau: - Lấy các thông tin, thẻ chứng thực (các protocol tầng Connectivity). - Truy vấn hệ thống thông tin Grid và các danh mục để tìm các tài nguyên thích hợp và vị trí các file dữ liệu đầu vào. (các dịch vụ tầng Collective). Gửi các yêu cầu đến các tài nguyên để thực hiện tính toán, di chuyển dữ liệu,… và kiểm soát quá trình thực thi công việc, thông báo cho người dùng khi mọi thứ hoàn tất, dò tìm và phản ứng với các điều kiện gây lỗi (tầng Resource). - 1.6. Grid computing đem lại những lợi ích gì ? 1.6.1. Khai thác tối đa tài nguyên xử lý Lợi ích đầu tiên cần nói đến đó là khả năng chạy một chương trình trên nhiều máy tính khác nhau . Hay nói một cách khác ,đó là xử lý song song. Trong một mạng lưới gồm nhiều máy tính ,rất ít khi các máy tính đều được sử dụng một cách tối đa những tài nguyên của mình ,thường thì với công việc văn phòng ,tính toán đơn giản ,máy tính chỉ sử dụng tối đa là 20% tài nguyên của máy, như vậy chúng ta nhìn thấy luôn sự lãng phí của những tài nguyên còn lại. Triên khai hệ thống grid computing sẽ giúp tận dụng những tài 13 nguyên còn chưa được sử dụng kia để xử lý một bài toán chung, trong trường hợp này, tốc độ xử lý được tối ưu, sự lãng phí tài nguyên được giảm tới mức tối đa. Không chỉ thế ,grid computing cho phép ảo hóa những đĩa cứng còn trống thành một đĩa cứng mới , từ đây chúng ta có thể tận dụng tài nguyên lưu trữ dữ liệu. 1.6.2. Khả năng xử lý song song Khi kết hợp nhiều bộ vi xử lý để giải quyết một bài toán, chúng ta có thể hình tượng như sau, bài toán lớn được chia làm n phần cho n CPU xử lý, mỗi một CPU sẽ xử lý 1 phần trong đó. Như vậy công việc chúng ta đạt được sẽ nhanh gấp n lần. Nhưng không phải ứng dụng nào cũng hợp lý nếu được triển khai một cách song song. Công việc này đòi hoi người thiết ké ứng dụng phải tư duy và sáng tạo Tuy nhiên xử lý song song sẽ là một phương án cần nghĩ đến đầu tiên trong nghiên cứu khoa học ,giải quyết những bài toán lớn, có tính độc lập của các thành phần cao. 1.6.3. Chia sẽ tài nguyên ảo và tổ chức ảo Grid computing cho phép tạo ra một môi trường cộng tác rộng lớn ,đồng nhất. Mỗi môi trường đó là một tổ chức ảo. Grid computing thậm chí còn cho phép kết hợp các tổ chức ảo, không đồng nhất với nhau để cộng tác với nhau. Các tổ chức ảo này chia sẽ tài nguyên với nhau như là một mạng lưới lớn. Chia sẽ tài nguyên dữ liệu bằng cách trải rộng cơ sở dữ liệu trên nhiều hệ thống tạo nên dung lượng lớn hơn nhiều so với hệ thống đơn. Cách trải rộng dữ liệu này làm tăng tốc độ truyền dữ liệu với công nghệ stripping. Dữ liệu thường xuyên được sao lưu phục vụ cho việc khôi phục dữ liệu. Ngoài ra ,còn có thể chia sẽ nhiều tài nguyên khác như thiết bị chuyên dụng, phần mềm. 1.6.4. Sự truy cập đến các tài nguyên khác Ngoài CPI và tài nguyên lưu trữ, Grid còn có thể truy cập đến các tài nguyên khác. Các tài nguyên này có thể được cung cấp dưới dạng số lượng hoặc khả năng lưu trữ, băng thông. Ví dụ, nếu một người muốn tăng băng thông truy nhập Internet để thực hiện việc khai thác dữ liệu tìm kiếm, công việc này có thể phân chia giữa các máy trong mạng Grid có đường truyền Internet không phụ thuộc vào nhau. Trong trường hợp này, khả năng tìm 14 kiếm được nhân lên khi mỗi máy có đường truyền riêng biệt. Nếu các máy chia sẻ đường kết nối internet thì nó sẽ không tăng băng thông. Trong một mạng lưới, một số máy tính được cài đặt nhưng phần mềm đắt tiền, một số khác thì không. Người sử dụng không cần cài đặt phần mềm đó vẫn có thể sử dụng phần mềm này bằng cách gửi công việc đến máy đã được cài phần mềm để yêu cầu xử lý. Đó là khả năng tận dụng phần mềm của Grid. Một vài máy in có thể sử dụng những thiết bị đặc biệt, chẳng hạn như máy in. Hầu hết các máy in được sử dụng từ xa. Grid có thể chia sẻ được những thiết bị đặc biệt này. Thậm chí Grid còn có thể chia sẽ những thiết bị, tài nguyên phức tạp như máy chuẩn đoán bệnh hay robot hỗ trợ phẫu thuật. 1.6.5. Cân bằng tài nguyên Grid liên kết các tài nguyên từ nhiều máy khác nhau tạo thành một hệ thống duy nhất. Grid có thể thực hiện cân bằng tài nguyên trong các chương trình bằng cách lập lịch làm việc cho các công việc. Chức năng này có ý nghĩ to lớn trong việc xử lý các trường hợp quá tải về xử lý, tính toán trong một tổ chức. Cân bằng có thể được thực hiện bởi 2 cách sau : những điểm quá tải được đưa đến những máy rỗi trên mạng lưới, nếu toàn mạng Grid bận, những công việc có độ ưu tiên thấp được tạm ngưng để dành cho những công việc có độ ưu tiên cao hơn. Đôi khi có những công việc đột ngột được tăng độ ưu tiên do cần hoàn thành gấp. Grid không thể xử lý được những công việc cần hoàn thành quá gấp. Tuy nhiên Grid có thể xử lý được những công việc nhỏ và huy động một lực lượng lớn tài nguyên để xử lý nó một cách nhanh nhất. Một lợi ích khác của Grid là cân bằng tải. Khi một công việc liên lạc với một công việc khác, với Internet, hoặc các tài nguyên khác, Grid có thể lập lịch cho chúng để có thể giảm thiểu tối đa lưu lượng đường truyền cũng như khoảng cách truyền. Điều này giúp Grid có thể giảm thiểu tắc nghẽn mạng. Cuối cùng Grid còn có khả năng thương mại tài nguyên. Các trạng thái của tất cả các tài nguyên trong mạng được Grid quản lý. Các tổ chức trên Grid có thể tạo tài khoản và trả tiền để sử dụng các tài nguyên này khi cần thiết. Điều này tạo nên tài chính mạng lưới. 15
- Xem thêm -