Tải bản đầy đủ (.pdf) (86 trang)

Mô hình tính toán lưới và ứng dụng giải một số bài toán trên đồ thị

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



ĐẠI HỌC THÁI NGUYÊN
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG






Hà Thị Thúy




MÔ HÌNH TÍNH TOÁN LƢỚI VÀ ỨNG DỤNG GIẢI
MỘT SỐ BÀI TOÁN TRÊN ĐỒ THỊ



LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH












Thái Nguyên - 2013

Số hóa bởi Trung tâm Học liệu

ĐẠI HỌC THÁI NGUN
ĐẠI HỌC CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG




HÀ THỊ TH





MƠ HÌNH TÍNH TỐN LƢỚI VÀ ỨNG DỤNG GIẢI
MỘT SỐ BÀI TỐN TRÊN ĐỒ THỊ

Chun ngành : Khoa học máy tính
Mã số : 60 48 01


LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH



NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS ĐỒN VĂN BAN






Thái Ngun - 2013





Số hóa bởi Trung tâm Học liệu

LỜI CAM ĐOAN
Tơi xin cam đoan những kiến thức trình bày trong luận văn này là do tơi tìm
hiểu, nghiên cứu và trình bày lại theo cách hiểu của tơi. Trong q trình làm luận văn
tơi có tham khảo các tài liệu có liên quan và đã ghi rõ nguồn tài liệu tham khảo đó.
Phần lớn những kiến thức tơi trình bày trong luận văn này chưa được trình bày hồn
chỉnh trong bất cứ tài liệu nào.

Số hóa bởi Trung tâm Học liệu

LỜI CẢM ƠN
Lời đầu tiên, tơi xin gửi lời cảm ơn chân thành và biết ơn sâu sắc nhất tới
PGS.TS. Đồn Văn Ban, người thầy đã chỉ bảo và hướng dẫn tận tình cho tơi trong
suốt q trình nghiên cứu khoa học và thực hiện luận văn này.
Tơi xin chân thành cảm ơn các thầy cơ giáo, cán bộ thuộc phòng Khoa học và
Đào tạo, Trường Đại học Cơng nghệ thơng tin & Truyền thơng Thái Ngun, đã tạo
điều kiện thuận lợi giúp đỡ tơi trong q trình học tập và nghiên cứu.
Và cuối cùng, tơi xin gửi lời cảm ơn tới gia đình, người thân và bạn bè - đồng
nghiệp - những người đã ln bên cạnh tơi những lúc khó khăn nhất, động viên và

khích lệ tơi trong cuộc sống và trong cơng việc.
Tơi xin chân thành cảm ơn!


Số hóa bởi Trung tâm Học liệu

MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC TỪ VIẾT TẮT
DANH MỤC HÌNH VẼ
LỜI MỞ ĐẦU 1
CHƢƠNG 1. GIỚI THIỆU VỀ CƠNG NGHỆ TÍNH TỐN LƢỚI 2
1.1 Giới thiệu về mơ hình tính tốn lưới 2
1.1.1 Q trình phát triển của tính tốn lưới 2
1.1.2 Khái niệm tính tốn lưới 4
1.1.3 Lợi ích của tính tốn lưới 6
1.1.4 Các dạng tài ngun trên lưới 9
1.1.5 So sánh tính tốn lưới với các cơng nghệ khác 12
1.2 Phân loại lưới 15
1.2.1 Lưới phòng ban (Departmental Grids) 15
1.2.2 Lưới doanh nghiệp (Enterprise Grids) 16
1.2.3 Lưới tồn cầu (Global Grids) 16
1.2.4 Lưới tính tốn (Compute Grids) 17
1.2.5 Lưới dữ liệu (Data Grids) 17
1.2.6 Lưới tiện ích (Utility Grids) 18
1.3 Vấn đề an tồn thơng tin và những thách thức đối với tính tốn lưới 18
1.3.1 An tồn thơng tin trong tính tốn lưới 18
1.3.2 Những thách thức với một lưới 20

1.4 Kết luận 20
CHƢƠNG 2. PHÁT TRIỂN ỨNG DỤNG TRÊN MƠI TRƢỜNG TÍNH TỐN LƢỚI 22
2.1 Cơ sở hạ tầng lưới 22

Số hóa bởi Trung tâm Học liệu

2.1.1 Portal/Giao diện người dùng 22
2.1.2 An tồn và bảo mật (Security) 23
2.1.3 Bộ mơi giới tài ngun (Broker) 23
2.1.4 Bộ lập lịch (scheduler) 23
2.1.5 Thành phần quản lý dữ liệu (Data management) 24
2.1.6 Thành phần quản lý cơng việc và tài ngun (Job and resource management)
24
2.1.7 Các thành phần khác 24
2.2 Kiến trúc của một lưới 25
2.2.1 Bản chất kiến trúc 25
2.2.2 Kiến trúc lưới tổng qt 27
2.2.3 Các chuẩn đối với tính tốn lưới 32
2.3 Một số mơi trường và cơng cụ hỗ trợ tính tốn lưới 38
2.3.1 Alchemi 39
2.3.2 Globus 40
2.3.3 Legion 47
2.3.4 UNICORE 48
2.4 Các vấn đề khi lập trình trên lưới 51
2.4.1 Các u cầu đối với lập trình trên lưới 51
2.4.2 Các vấn đề cần quan tâm khi lập trình trên lưới 53
2.5 Kết luận 60
CHƢƠNG 3. GIẢI MỘT SỐ BÀI TỐN ĐỒ THỊ TRÊN MƠI TRƢỜNG LƢỚI 61
3.1 Các khái niệm cơ bản 61
3.1.1 Đồ thị 61

3.1.2 Đường đi 62
3.2 Thuật tốn Dijkstra 63
3.2.1 Thuật tốn tuần tự 63

Số hóa bởi Trung tâm Học liệu

3.2.2 Song song thuật tốn Dijkstra trên lưới 63
3.2.3 Thực nghiệm chương trình 64
3.3 Thuật tốn tơ mầu đồ thị 66
3.3.1 Thuật tốn tuần tự 67
3.3.2 Song song trên lưới 67
3.3.3 Thực nghiệm chương trình 68
3. 4 Kết luận 70
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 71
TÀI LIỆU THAM KHẢO 73

Số hóa bởi Trung tâm Học liệu

DANH MỤC TỪ VIẾT TẮT
Viết tắt
Tên đầy đủ
Chú giải
API
Application Programming Interface
Giao diện lập trình ứng dụng
CMM
Common Management Model
Quản lý chung mẫu
CORBA
Common Object Request Broker

Architecture
u cầu chung kiến trúc đối
tượng mơi giới
CPU
Center Processing Unit
Bộ xử lý trung tâm
DAP
Directory Access Protocol
Giao thức đặc tả các kỹ thuật
định danh đối tượng, tìm kiếm
và ghi các khoản mục dữ liệu
DCOM
Digital Computer
Thiết bị khơng dây
DNS
Domain Name System
Hệ thống phân giải tên miền
FTP
File Transfer Protocol
Giao thức truyền tệp qua mạng
TCP
GGF
Global Grid Forum
Diễn đàn lưới tồn cầu
GRAM
Globus Resource Allocation
Management
Dịch vụ quản lý và định vị tài
ngun lưới
GridFTP

Grid File Transfer Protocol
GridFTP là mở rộng của giao
thức FTP, tích hợp khả năng
bảo mật lưới, truyền dữ liệu tốt
hơn so với FTP
GSH
Grid Service Handle
Lưới dịch vụ xử lý
GSR
Grid Service Reference
Lưới dịch vụ tham khảo
GSS-API
Generic Security Service Application
Program Interface
Giao diện lập trình ứng dụng
dịch vụ bảo mật chung

Số hóa bởi Trung tâm Học liệu

GT
Globus Toolkit
Bộ cơng cụ được phát triển bởi
Globus Alliance, dùng đê phát
triên các ứng dụng lưới
GTCP
Grid Telecontrol Protocol
Giao thức điều khiển lưới từ xa
GUI
Graphical User Interface
Giao diện người dùng đồ họa

HPC
High Performance Computing
Tính tốn hiệu năng cao
HTML
Hyper Text Markup Language
Ngơn ngữ hiển thị siêu văn bản
HTTP
Hyper Text Transfer Protocol
Giao thức truyền siêu văn bản
IBM
International Business Machines
tập đồn cơng nghệ máy tính đa
quốc gia có trụ sở tại Armonk,
New York, Mỹ
ICMP
Internetwork Control Message
Protocol
Giao thức điều khiển truyền tin
trên mạng
IDB
Installation Database
Thơng số cần khai báo về cơ sở
dữ liệu
IP
Internet Protocal
Giao thức Internet
IT
Information Technology
Cơng nghệ thơng tin
J2EE

Java 2 Enterprise Edittion
Java doanh nghiệp phiên bản 2
JMC
Job Monitor Component
Cấu tạo màn hình cơng việc
LAN
Local Area Network
Mạng cục bộ
MDS
Monitoring and Discovery Service
Giám sát dịch vụ
NCSA
National computer security association
Hiệp hội an ninh máy tính quốc
gia

Số hóa bởi Trung tâm Học liệu

NET
Network
Mạng lưới
NFS
National Science Foundation
Quỹ khoa học quốc gia
NJS
Network Job Supervisors
Mạng lưới giám sát cơng việc
OGSA
Open Grid Service Architecture
Kiến trúc dịch vụ lưới

OGSI
Open Grid Service Infrastructure
Hạ tầng dịch vụ lưới mở
OSPF
Open Shortest Path First
Giao thức tìm đường ngắn nhất
đầu tiên
PC
Personal Computer
Máy tính cá nhân
PU
Processing Unit
Đơn vị xử lý
PVM
Parallel Virtual Machine
Song song máy ảo
QoS
Quality of Service
Chất lượng dịch vụ
RFT
Reliable File TransferService
Dịch vụ truyền file tin cậy
RLS
Replica Location Service
Dịch vụ định vị bản sao trong
kiến trúc lưới dữ liệu Globus,
cho phép xác định vị trí của các
bản sao của thực thể dữ liệu
trong lưới.
RMI

Remote Method Invocation
Gọi phương thức từ xa
RPC
Remote Procedure Call
Lời gọi hàm xa
SAML
Security Assertion Markup Language
Ngơn ngữ đánh dấu liên kết an
tồn
SDK
Software Development Kit
Tập cơng cụ hỗ trợ phát triển
phần mềm

Số hóa bởi Trung tâm Học liệu

SOAP
Simple Object Acess Protocol
Giao thức truy cập đối tượng
đơn giản
SSL
Secure Socket Layer
Giao thức bảo mật lưới
TCP
Transmission Control Protocol
Giao thức Điều khiển Giao vận
TLS
Transport Layer Security
Giao thức bảo mật tầng giao
vận

UDP
User Datagram Protocol
Giao thức sử dụng gói
VO
Virtual Organizations
Các tổ chức ảo
VPN
Virtual Private Networks
Mạng riêng ảo
WAN
Wide Area Network
Mạng diện rộng
WS
Web Service
Dịch vụ web
WSDL
Web Service Deployment Descriptor
Language
Ngơn ngữ đặc tả dịch vụ web
WSIL
WS- Inspection Language
Dịch vụ web kiểm tra ngơn ngữ
WSRF
Web Services Resource Framework
Framework đưa ra bởi GT4 hỗ
trợ kiến trúc lập
trình mới
WWW
World Wide Web
Mạng lưới tồn cầu

XML
Extensible Markup Language
Là một cách thức linh động để
tạo ra các định dạng thơng tin
và chia sẻ cả định dạng và dữ
liệu trên web


DANH MỤC HÌNH VẼ
Trang
Hình 1.1
Mô hình tính toán lưới
5
Hình 1.2
Tài nguyên lưới dưới quan điểm của người dùng là một khối
thống nhất có được nhờ sự ảo hoá.
12
Hình 2.1
Kiến trúc lưới tổng quát
27
Hình 2.2
Mối quan hệ giữa OGSA và OGSI
33
Hình 2.3
Kiến trúc của Alchemi
40
Hình 2.4
Mô hình hệ thống hướng dịch vụ web
41
Hình 2.5

Mô hình kiến trúc hoạt động của UNICORE
49
Hình 3.1
Cung (u, v)
61
Hình 3.2
Cạnh (u, v)
61
Hình 3.3
Biểu diễn khuyên
61
Hình 3.4
Đồ thị G cho trước
62
Hình 3.5
Giao diện chương trình trên máy server - thuật toán Dijkstra
65
Hình 3.6
Hướng dẫn sử dụng các chức năng chính
65
Hình 3.7
Giao diện chương trình trên client - thuật toán Dijkstra
66
Hình 3.8
Giao diện chương trình trên máy server - thuật toán tô màu
đồ thị
69
Hình 3.9
Giao diện chương trình trên client - thuật toán tô màu đồ thị
69


1


LỜI MỞ ĐẦU
Nhân loại ngày nay đang chứng kiến sự phát triển mạnh mẽ của ngành Công
nghệ Thông tin, một trong những ngành mũi nhọn của nhiều quốc gia trên thế giới. Sự
phát triển vượt bậc đó là kết quả tất yếu của sự phát triển kèm theo các thiết bị phần
cứng cũng như phần mềm tiện ích.
Sự phát triển đó đã kéo theo rất nhiều các ngành khác phát triển theo, trong đó
có lĩnh vực nghiên cứu khoa học. Tuy công nghệ ngày càng phát triển, tốc độ xử lý các
thiết bị cũng không ngừng tăng cao, nhưng nhu cầu tính toán của con người là không
giới hạn, vì thế tính toán lưới đã ra đời nhằm đáp ứng nhu cầu này.
Công nghệ tính toán lưới ra đời đánh dấu một bước phát triển mới .Trong lĩnh
vực điện toán hiệu năng cao. Nó cho phép tận dụng năng lực xử lý, lưu trữ cùng các
tài nguyên nhàn rỗi khác để cung cấp một môi trường tính toán có năng lực xử lý lớn,
khả năng lưu trữ dồi dào để giải quyết các bài toán phức tạp - khó có thể giải quyết
được với các công nghệ hiện hành hoặc giải quyết được nhưng với chi phí rất cao -
trong khoa học, thương mại. Tính toán lưới giúp tận dụng tối đa tài nguyên, tăng cường
hợp tác, giảm chi phí đầu tư trong khi vẫn cung cấp năng lực tính toán như mong
muốn. Hiện nay, đất nước ta đang thực hiện công cuộc công nghiệp hoá, hiện đại hóa,
trong đó việc rút ngắn sự tụt hậu, phát triển về khoa học công nghệ là yếu tố then chốt
quyết định đến thành công của công cuộc đổi mới. Cấu trúc của luận văn bao gồm các
mục sau:
Chƣơng 1: Giới thiệu về công nghệ tính toán lưới
Chƣơng 2: Phát triển ứng dụng trên môi trường tính toán lưới
Chƣơng 3: Giải một số bài toán đồ thị trên môi trường lưới
Kết luận, hƣớng phát triển và tài liệu tham khảo được trình bày ở phần cuối
của luận văn.


2


CHƢƠNG 1. GIỚI THIỆU VỀ CÔNG NGHỆ TÍNH TOÁN LƢỚI
1.1 Giới thiệu về mô hình tính toán lƣới
1.1.1 Quá trình phát triển của tính toán lưới
Cũng như các công nghệ tính toán khác, tính toán lưới (Grid Computing) ra đời
xuất phát từ nhu cầu tính toán của con người. Thực tế, ngày càng có nhiều bài toán
phức tạp hơn được đặt ra và do đó các tổ chức cũng cần phải có những năng lực tính
toán mạnh mẽ hơn. Có thể giải quyết vấn đề này bằng hai cách [1]:
Một là: Đầu tư thêm trang thiết bị, cơ sở hạ tầng tính toán (mua thêm máy chủ,
máy trạm, siêu máy tính, cụm máy tính (cluster), ).
Hai là: Phân bố lại hợp lý các nguồn tài nguyên trong tổ chức hoặc thuê thêm
các nguồn tài nguyên từ bên ngoài (dĩ nhiên là với chi phí rẻ hơn nhiều so với việc đầu
tư cho cơ sở hạ tầng tính toán).
Cách giải quyết thứ hai này chính là mục tiêu và nguồn gốc yêu cầu cho sự hình
thành của tính toán lưới. Các nhà khoa học tại Argone National Laboratory thuộc đại
học Chicago (Mỹ) là những người đầu tiên đề xuất ý tưởng về tính toán lưới.
Tính toán lưới hướng đến việc chia sẻ và sử dụng hiệu quả các nguồn tài nguyên
thuộc về nhiều tổ chức trên một quy mô rộng lớn (thậm chí là quy mô toàn cầu). Chính
công nghệ mạng và truyền thông phát triển mạnh mẽ trong những năm qua đã biến
những khả năng này dần trở thành hiện thực. Các nghiên cứu về tính toán lưới đã và
đang được tiến hành nhằm tạo ra một cơ sở hạ tầng lưới cho phép dễ dàng chia sẻ và
quản lý các tài nguyên đa dạng và phân tán trong môi trường lưới.
Giống như Internet, khái niệm lưới (Grid) đã phát triển từ những nhu cầu về tính
toán khoa học lớn. Internet được phát triển để thoả mãn nhu cầu về một phương tiện
liên lạc giữa các trung tâm tính toán lớn do liên bang đầu tư. Những sự liên kết này dẫn
tới việc chia sẻ tài nguyên và thông tin giữa các trung tâm này và sau đó là cung cấp sự

3



truy nhập tới các tài nguyên cho các nhiều người sử dụng. Các thủ tục chia sẻ tài
nguyên đặc biệt giữa các nhóm này đã hình thành phương thức để chuẩn hoá những
giao thức cần để trao đổi thông tin giữa các khu vực hành chính. Công nghệ lưới có thể
xem như một mở rộng hoặc một ứng dụng của nền tảng này để tạo nên phương thức
chia sẻ tài nguyên tổng quát [13].
Dự án phi lợi nhuận Seti@home là một trong những nhân tố khoa học nổi tiếng
thúc đẩy việc tạo ra một dự án tính toán lưới đơn giản bằng cách thu thập tất cả các tài
nguyên CPU chưa được sử dụng (những người theo chủ nghĩa lưới thuần túy cho rằng
CPUi@home thực chất là một ứng dụng tính toán phân tán bởi nó hầu như không thúc
đẩy việc sử dụng bất kỳ một khái niệm lưới nào). Seti@home không phải là dự án đầu
tiên mở đường cho kỹ thuật này. Việc tận dụng tài nguyên CPU trên các máy trong
mạng cục bộ đã bắt đầu từ thập niên 1970 với những dự án phi lợi nhuận như
distributed.net nhưng Seti@home nổi tiếng bởi dự án này được ứng dụng vào rất nhiều
dự án khác như dự đoán cấu trúc protein, nghiên cứu thuốc cho bệnh ung thư, giải các
bài toán phức tạp và dự báo thời tiết. Hầu hết những dự án này đều thực hiện dưới dạng
các tiến trình chạy trên các máy tính cá nhân, xử lý những phần dữ liệu nhỏ khi máy
tính ở trạng thái chờ hoặc sử dụng ít tài nguyên. Nhiều dự án như vậy đã bị kéo dài
hoặc tốn quá nhiều tiền [13].
Vào năm 1997, một trong những dịch vụ tính toán lưới thương mại đầu tiên đã
được Entropia cung cấp, và tới nay có rất nhiều dịch vụ như vậy do các công ty và các
phòng thí nghiệm thực hiện. Một điểm khác biệt quan trong giữa các lưới và các dự án
gần giống lưới là trong tính toán lưới cho phép di trú các nhiệm vụ tính toán tới tất cả
các nút tính toán trên lưới để thực thi. Chẳng hạn chương trình xử lý ảnh viễn vọng
Seti@home chứa cả mã xử lý dữ liệu từ kính viễn vọng vô tuyến và mã để lấy dữ liệu
từ cơ sở dữ liệu và trả lại kết quả. Hai đoạn mã này được trộn lẫn vào một chương
trình. Trong lưới, chỉ có các đoạn mã đòi hỏi phải truy vấn cơ sở dữ liệu và trả về kết

4



quả thì nằm trên các nút tính toán. Mã cần để thực hiện các tác vụ phân tán được gửi
riêng rẽ tới các nút. Theo cách này, các nút của lưới có thể dễ dàng lập trình lại [13].
Có thể nói, việc phát triển và xây dựng mô hình tính toán lưới 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 cho các mô hình tính toán lưới ngày
càng được ứng dụng để thực hiện được nhiều điều hơn những ý tưởng trước đây.
1.1.2 Khái niệm tính toán lưới
Trong mỗi giai đoạn phát triển, mỗi tổ chức, cá nhân tùy theo quan điểm và thực
tế xây dựng hệ thống của mình mà đưa ra các định nghĩa khác nhau về tính toán lưới.
Dưới đây, luận văn xin trình bày một số định nghĩa về tính toán lưới như sau:
Dưới quan điểm cá nhân của tiến sỹ I.Foster và các đồng nghiệp thì [9] "Một
lưới là một hệ thống có các đặc trưng như phối hợp các tài nguyên phân tán từ nhiều
miền tự trị khác nhau; sử dụng các chuẩn mở và giao thức mở; cung cấp chất lượng
dịch vụ không tầm thường" - I. Foster„s Three-Point Checklist (HPCWIRE -
20.07.2002).
Còn dưới quan điểm của một số công ty và liên minh phát triển lưới uy tín trên
thế giới thì tính toán lưới được định nghĩa như sau [6]:
Định nghĩa của Oracle: tính toán lưới là việc liên kết nhiều máy chủ và thiết
bị lưu trữ thành một siêu máy tính nhằm tối ưu hóa được tính ưu việt của các hệ thống
máy chủ cũng như hệ thống ứng dụng, nhờ đó giảm thiểu đến mức thấp nhất chi phí.
Định nghĩa của IBM: tính toán lưới là một môi trường tính toán ảo. Môi
trường này cho phép bố trí song song, linh hoạt, chia sẻ, tuyển lựa, tập hợp các nguồn
tài nguyên hỗn hợp về mặt địa lý, tùy theo mức độ sẵn sàng, hiệu suất, chi phí của các
tài nguyên tính toán và yêu cầu về chất lượng dịch vụ của người sử dụng.
Định nghĩa của liên minh điện toán lưới: môi trường tính toán lưới được hiểu
như một hạ tầng kết nối hệ thống máy tính, hệ thống mạng, hệ thống cơ sở dữ liệu

5



được sở hữu và quản lý bởi nhiều tổ chức, cá nhân nhằm cung cấp môi trường tính
toán ảo duy nhất với hiệu năng cao cho người sử dụng.

Hình 1.1: Mô hình tính toán lưới
Định nghĩa chính thức về một lưới được Ian Foster đưa ra trong bài báo “
What is a Grid?” và trong định nghĩa một lưới có ba đặc điểm chính là:
 Tài nguyên tính toán không được quản lý tập trung
 Sử dụng các chuẩn mở
 Có chất lượng dịch vụ tốt.

6


Trên thực tế, tính toán lưới hấp dẫn đối với các nỗ lực cộng tác nghiên cứu phân
tán theo địa lý phi lợi nhuận như các lưới nghiên sinh tin học của trung tâm ứng dụng
siêu máy tính NCSA chẳng hạn lưới BIRN (lưới ngoài).
Tính toán lưới cũng hấp dẫn đối với các doanh nghiệp thương mại lớn với các
bài toán phức tạp, đây là các tổ chức luôn cố gắng tận dụng các tài nguyên tính toán
bên trong một cách hiệu quả nhất (lưới nội bộ).
Mỗi tác giả khi đưa ra định nghĩa đều đứng trên một số quan niệm nhất định. Để
có cái nhìn toàn diện về tính toán lưới, ta không đưa ra một định nghĩa cụ thể nào, thay
vào đó chúng ta sẽ xem xét khái niệm tính toán lưới các đặc trưng sau:
Kích thước lớn: theo số lượng tài nguyên và khoảng cách địa lý giữa chúng
Phân tán: có độ trễ đáng kể trong truyền dữ liệu, tài nguyên trải dài trên các
vùng địa lý khác nhau
Động: các tài nguyên có thể thay đổi khi ứng dụng đang được thực hiện
Hỗn tạp: kiến trúc và tính chất của các nút lưới có thể là hoàn toàn khác nhau.
Tài nguyên lưới có thể là các máy đơn hoặc mạng con khác nhau

Vượt qua phạm vi một tổ chức: có nhiều trạm và các chính sách truy nhập có thể
khác nhau trên các trạm, tổng thể lưới sẽ tạo ra một tổ chức ảo thống nhất.
Cơ chế và chính sách an toàn bảo mật phức tạp. Cơ chế quản lý tài nguyên đa
dạng, phức tạp.
Có thể hình dung đơn giản một lưới bao gồm một tập các tài nguyên đa dạng
(còn gọi là các nút lưới - có thể là PC, cluster, hệ thống lưu trữ, ) thuộc về nhiều tổ
chức nhằm giải quyết một bài toán nào đó.
1.1.3 Lợi ích của tính toán lưới
Tính toán lưới có thể đem lại những ích lợi rất lớn [10].
1/. Khai thác, tận dụng các tài nguyên nhàn rỗi

7


Hầu hết các tổ chức đều có một lượng lớn các tài nguyên tính toán nhàn rỗi, các
máy tính cá nhân thường chỉ sử dụng hết 5% thời gian xử lý CPU, ngay cả các server
cũng thường “rảnh rỗi”. Lưới có thể tối ưu sử dụng các tài nguyên nhàn rỗi này theo
nhiều cách khác nhau, ví dụ, gửi một công việc trên một máy tính đang bận rộn đến
một máy khác rảnh rỗi hơn để xử lý, hoặc phân nhỏ một công việc rồi gửi các công
việc con đến các máy tính nhàn rỗi khác cho xử lý song song,
Lưới cho phép kết hợp nhiều không gian lưu trữ nhàn rỗi để tạo thành một
không gian lưu trữ lớn hơn, được cấu hình để tăng hiệu suất, độ tin cậy hơn so với các
máy đơn lẻ thông qua các cơ chế quản lý dữ liệu.
Một chức năng của lưới nữa là cân bằng sử dụng tài nguyên tốt hơn. Một tổ
chức thường gặp các vấn đề khó khăn khi các hoạt động đòi hỏi thêm nhiều tài nguyên
hơn. Với lưới, có thể chuyển hoạt động đến các tài nguyên nhàn rỗi khác, hoặc có thể
thêm các tài nguyên mới một cách dễ dàng, từ đó làm tăng khả năng chịu đựng của hệ
thống. Lưới có thể quản lý nhiều loại tài nguyên, do đó có thể cho phép theo dõi tổng
quan về các hoạt động sử dụng tài nguyên trong các tổ chức lớn, hỗ trợ hoạch định các
chiến lược sử dụng tài nguyên.

2/. Sử dụng CPU song song
Khả năng sử dụng các CPU song song là một đặc tính tuyệt vời của lưới, ngoài
việc hỗ trợ các nhu cầu tính toán của các nhà khoa học, sức mạnh tính toán do lưới
cung cấp có thể giúp giải quyết các bài toán đòi hỏi năng lực xử lý lớn trong các ngành
khác như y dược, tính toán tài chính, kinh tế, khai thác dầu hoả, dự báo thời tiết, công
nghiệp vũ trụ, thiết kế sản phẩm, và rất nhiều lĩnh vực khác.
3/. Cho phép hợp tác trên toàn thế giới
Một trong những đóng góp quan trọng của công nghệ tính toán lưới là cho phép
và đơn giản hoá hợp tác chia sẻ, làm việc giữa một cộng đồng rộng lớn trên toàn thế
giới. Các công nghệ tính toán phân tán trước đây cũng cho phép hợp tác nhưng chỉ trong
một phạm vi nhỏ, còn lưới cho phép mở rộng trên phạm vi toàn cầu khi đưa ra những

8


chuẩn quan trọng cho phép các hệ thống không đồng dạng làm việc chung với nhau để
tạo nên một hệ thống tính toán ảo cung cấp rất nhiều dạng tài nguyên khác nhau.
4/. Cho phép chia sẻ, sử dụng tất cả các loại tài nguyên
Không chỉ cho phép chia sẻ các chu kỳ tính toán, dữ liệu, lưới có thể cho phép
chia sẻ tất cả các loại tài nguyên mà trước đây chưa được chia sẻ, như băng thông mạng,
các thiết bị đặc biệt, phần mềm, bản quyền, các dịch vụ. Ví dụ, nếu một người dùng
muốn tăng băng thông kết nối Internet của mình lên để thực hiện một ứng dụng khai thác
dữ liệu, ứng dụng đó có thể được gửi đến nhiều máy tính trong lưới có các kết nối
Internet riêng, từ đó băng thông truy cập Internet của anh ta tăng lên rất nhiều lần.
5/. Tăng tính tin cậy cho các hệ thống máy tính
Hiện nay, các hệ thống tính toán sử dụng các phần cứng chuyên dụng, đắt đỏ để
tăng độ tin cậy. Ví dụ, một máy tính có thể sử dụng các bộ vi xử lý đôi, cho phép “cắm
nóng”, để khi có một vi xử lý bị hỏng, có thể thay thế cái khác mà không làm ngưng
hoạt động của hệ thống. Các giải pháp này làm tăng độ tin cậy của hệ thống, tuy nhiên
với chi quá đắt khi phụ kiện đi kèm cũng phải nhân lên. Trong tương lai, các hướng

tiếp cận mới để giải quyết vấn đề độ tin cậy dựa nhiều hơn vào các công nghệ phần
mềm hơn là các phần cứng đắt tiền. Lưới là sự khởi đầu cho các công nghệ đó. Các hệ
thống trong lưới thường rẻ và phân tán theo địa lý, do đó, nếu có sự cố về nguồn điện
hay các lỗi hệ thống khác tại một vị trí, toàn bộ phần còn lại không bị ảnh hưởng. Các
phần mềm quản trị lưới có khả năng thực thi lại công việc trên một nút khác khi phát
hiện có lỗi hệ thống. Nếu quan trọng hơn nữa, trong các hệ thống theo thời gian thực,
nhiều bản dự phòng của các các công việc quan trọng có thể được chạy trên nhiều máy
tính khác nhau trong lưới để đảm bảo độ tin cậy tối đa.
6/. Tăng khả năng quản trị các hệ thống
Mục tiêu ảo hoá tất cả các tài nguyên và cung cấp giao diện quản lý đơn nhất
các hệ thống hỗn tạp đem lại những cơ hội mới để quản trị tốt hơn trong các cơ sở hạ
tầng công nghệ thông tin lớn, phân tán. Bên cạnh đó, đối với tầm quản lý vĩ mô, có

9


nhiều dự án sử dụng cơ sở hạ tầng công thông tin, lưới cho phép quản lý độ ưu tiên sử
dụng tài nguyên của các dự án này. Trước đây, mỗi dự án thường chịu trách nhiệm
quản lý một số tài nguyên, thường xảy ra tình trạng các tài nguyên của dự án này đang
nhàn rỗi trong khi dự án khác đang gặp vấn đề, thiếu tài nguyên do gặp các sự kiện
không lường trước. Với tầm nhìn rộng hơn do lưới cung cấp, các tình huống trên có thể
được giải quyết dễ dàng.
Trên đây giới thiệu một số ích lợi khi sử dụng công nghệ tính toán lưới, lưới
còn mang lại rất nhiều lợi ích khác mà không thể kể hết ở đây, tuỳ vào tình huống cụ
thể mà đem lại các lợi ích khác nhau. Vấn đề là phải hiểu rõ bản chất lưới, sử dụng tốt
các công cụ nhằm khai khác tốt nhất trong các tình huống cụ thể.
Từ đó, công nghệ tính toán lưới có thể được ứng dụng trong các bài toán trong
khoa học lẫn thương mại:
Đòi hỏi năng lực xử lý lớn (High-performance computing), yêu cầu rút ngắn
thời gian hoàn thành kết quả càng nhanh càng tốt.

Hướng dữ liệu, đòi hỏi phải thu thập, lưu trữ, phân tích một lượng lớn dữ liệu,
mang tính phân tán.
Cần sự hợp tác, chia sẻ giữa các cộng đồng.
1.1.4 Các dạng tài nguyên trên lưới
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 lưới. 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 lưới:
Cách đơn giản nhất là chạy các ứng dụng hiện có trên một nút của lưới thay vì
chạy trên máy tính cục bộ.

10


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 trên nhiều nút khác nhau của lưới.
Chạy ứng dụng thực thi nhiều lần trên nhiều nút khác nhau trong lưới.
2/. Tài nguyên lƣu trữ
Tài nguyên phổ biến thứ nhì trong lưới là tài nguyên lưu trữ. Mỗi thiết bị trong
lưới 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 lưới. 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.
3/. Tài nguyên đƣờng truyền mạng
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ệ lưới 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 lưới và giao tiếp giữa lưới
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
lưới.
Việc giao tiếp với bên ngoài được thực hiện thông qua mạng Internet. Lưới có
thể sử dụng các kết nối Internet để liên lạc giữa các nút. 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.
4/. Tài nguyên phần mềm
Lưới 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 lưới. Các phần mềm này chỉ cần được cài trên một số nút. Thông qua
lưới, khi một công việc cần đến chúng, nó sẽ gửi dữ liệu đến nút đã được cài đặt phần

11


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.
5/. Các tài nguyên đặc dụng
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.
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 lưới sao cho dưới mắt của người dùng, các tài nguyên
lưới là một khối thống nhất.
Các tài nguyên ảo được tổ chức lại thành các “tổ chức ảo”, đến lượt nó, các tổ

chức ảo lại thực hiện chia sẻ tài nguyên của mình để hình thành lưới lớn hơn, tạo thành
một kho tài nguyên khổng lồ.

12



Hình 1.2 Tài nguyên lưới dưới quan điểm của người dùng là một khối thống nhất có
được nhờ sự ảo hoá.
1.1.5 So sánh tính toán lưới với các công nghệ khác
1/. World Wide Web (WWW):
WWW hiện nay đang phát triển mạnh mẽ và được sử dụng rộng khắp. Sử dụng
các chuẩn mở và các giao thức mở (TCP, HTTP, XML, SOAP), WWW có thể được sử
dụng để xây dựng các tổ chức ảo tuy nhiên nó thiếu một số đặc tính quan trọng như các
cơ chế chứng thực một lần, ủy nhiệm, các cơ chế phối hợp sự kiện,
2/. Các hệ thống tính toán phân tán (Distributed computing systems)
 Các công nghệ tính toán phân tán hiện tại bao gồm CORBA, J2EE, và
DCOM rất thích hợp cho các ứng dụng phân tán tuy nhiên chúng không cung cấp một
nền tảng phù hợp cho việc chia sẻ tài nguyên giữa các thành viên của tổ chức ảo. Một
số khó khăn có thể kể ra trong việc khai phá tài nguyên, đảm bảo an ninh và xây dựng
động các tổ chức ảo. Thêm nữa việc tương tác giữa các công nghệ này cũng gặp phải

13


khó khăn. Tuy nhiên cũng đã có một số nghiên cứu nhằm mở rộng những công nghệ
này cho môi trường lưới, ví dụ như Java JINI.
 Các nhà cung cấp dịch vụ ứng dụng và dịch vụ lưu trữ (Application and
Storage Service Provider).
 Các nhà cung cấp ứng dụng và dịch vụ lưu trữ thường cung cấp cho người

dùng một số ứng dụng cụ thể nào đó cũng như không gian lưu trữ. Người dùng tương
tác với nhà cung cấp dịch vụ thường là thông qua mạng riêng ảo (VPN) hoặc các
đường truyền dành riêng nên loại bỏ được rất nhiều nguy cơ về an toàn bảo mật. Do
vậy khi nói về các loại dịch vụ này thì ngữ cảnh của chúng cũng hẹp hơn tính toán lưới
rất nhiều.
3/. Các hệ thống tính toán ngang hàng (Peer - to - peer Computing Systems)
Tính toán ngang hàng cũng là một lĩnh vực của tính toán phân tán. Một số hệ
thống tính toán ngang hàng phổ biến hiện nay là Seti@home hay các mạng ngang hàng
chia sẻ tập tin như Napster, Kazaa, Morpheus và Gnutella. Những điểm khác biệt chính
giữa tính toán ngang hàng và tính toán phân tán là:
 Tính toán lưới có cộng đồng người sử dụng có thể nhỏ hơn tuy nhiên tập
trung nhiều vào các ứng dụng và có yêu cầu cao hơn về an ninh cũng như tính toàn vẹn
của ứng dụng. Trong khi đó các hệ thống mạng ngang hàng có thể có số người sử dụng
rất lớn bao gồm cả các người dùng đơn lẻ và các tổ chức tuy nhiên không đòi hỏi cao
về an ninh và mô hình chia sẻ tài nguyên cũng đơn giản hơn.
 Môi trường lưới liên kết các nguồn tài nguyên mạnh hơn, đa dạng hơn và chặt
chẽ hơn.
4/. Công nghệ tính toán hiệu năng cao truyền thống (High performance computing)
Như đã nói ở trên, để giải quyết những bài toán lớn người ta có thể đầu tư cho
cơ sở hạ tầng tính toán. Để giải quyết những bài toán rất lớn và phức tạp người ta phải
nghiên cứu xây dựng những hệ thống siêu tính toán. Các hướng nghiên cứu trong tính
toán hiệu năng cao chủ yếu bao gồm:

×