CNTT1001

153 188 2
Tài liệu đã được kiểm tra trùng lặp
CNTT1001

Đ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

http://etrithuc.vnTRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM HUỲNH BÁ THANH TÙNG TRẦN VIỆT CƯỜNG NGHIÊN CỨU TÍNH TOÁN LƯỚI VÀ THỬ NGHIỆM MỘT SỐ THUẬT TOÁN LÝ THUYẾT ĐỒ THỊ KHOÁ LUẬN CỬ NHÂN TIN HỌC TP. HCM, NĂM 2005 http://etrithuc.vnTRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM HUỲNH BÁ THANH TÙNG - 0112079 TRẦN VIỆT CƯỜNG - 0112339 NGHIÊN CỨU TÍNH TOÁN LƯỚI VÀ THỬ NGHIỆM MỘT SỐ THUẬT TOÁN LÝ THUYẾT ĐỒ THỊ KHÓA LUẬN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN TS. TRẦN ĐAN THƯ Th.S NGUYỄN THANH SƠN NIÊN KHÓA 2001-2005 http://etrithuc.vnNHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN http://etrithuc.vnNHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN http://etrithuc.vnLỜI CẢM ƠN Chúng em xin bày tỏ lòng biết ơn chân thành nhất đến Thầy Trần Đan Thư và thầy Nguyễn Thanh Sơn, hai Thầy đã tận tâm hướng dẫn, giúp đỡ chúng em trong suốt thời gian thực hiện luận văn này. Chúng con xin gửi tất cả lòng biết ơn sâu sắc và sự kính trọng đến ông bà, cha mẹ, cùng toàn thể gia đình, những người đã nuôi dạy chúng con trưởng thành đến ngày hôm nay. Chúng em cũng xin chân thành cám ơn quý Thầy cô trong Khoa Công nghệ thông tin, trường Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh đã tận tình giảng dạy, hướng dẫn, giúp đỡ và tạo điều kiện cho chúng em thực hiện tốt luận văn này. Xin chân thành cám ơn sự giúp đỡ, động viên và chỉ bảo rất nhiệt tình của các anh chị và tất cả các bạn, những người đã giúp chúng tôi có đủ nghị lực và ý chí để hoàn thành luận văn này. Mặc dù đã cố gắng hết sức, song chắc chắn luận văn không khỏi những thiếu sót. Chúng em rất mong nhận được sự thông cảm và chỉ bảo tận tình của quý Thầy Cô và các bạn. TP.HCM, 7/2005 Nhóm sinh viên thực hiện Huỳnh Bá Thanh Tùng - Trần Việt Cường http://etrithuc.vnLỜI NÓI ĐẦU Nhân lọai 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 nghà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 của nó 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 nghà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ủa 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 vẫn còn là rất lớn. Hiện nay vẫn còn rất nhiều vấn đề mà các nhà khoa học cùng với khả năng tính toán của các máy tính hiện nay vẫn chưa giải quyết được hay giải quyết được nhưng với thời gian rất lớn. Các vấn đề đó có thể có thể là : • Mô hình hóa và giả lập • Xử lý thao tác trên các dữ liệu rất lớn • Các vấn đề “grand challenge” (là các vấn đề không thể giải quyết trong thời gian hợp lý) Lời giải cho những vấn đề này đã dẫn đến sự ra đời của các thế hệ siêu máy tính. Tuy nhiên việc đầu tư phát triển cho các thiết bị này gần như là điều quá khó khăn đối với nhiều người, tổ chức, trường học…. Chính vì lẽ đó mà ngày nay người ta đang tập trung nghiên cứu cách cách sử dụng các tài nguyên phân bố một cách hợp lý để tận dụng được khả năng tính toán của các máy tính đơn. Những giải pháp này được biết đến với nhiều tên gọi khác nhau như meta-computing, salable-computing, global- computing, internet computing và gần nhất hiện nay là peer to peer computing hay Grid computing. Đây là phương pháp nhằm tận dụng khả năng của các máy tính trên toàn mạng thành một máy tính “ảo” duy nhất, nhằm hợp nhất tài nguyên tính toán ở nhiều nơi trên thế giới để tạo ra một khả năng tính toán khổng lồ, góp phần giải http://etrithuc.vn quyết các vấn đề khó khăn trong khoa học và công nghệ. Ngày nay nó đang càng được sự hỗ trợ mạnh hơn của các thiết bị phần cứng, băng thông… Grid Computing có khả năng chia sẻ, chọn lựa, và thu gom một số lượng lớn những tài nguyên khác nhau bao gồm những siêu máy tính, các hệ thống lưu trữ, cùng với những nguồn dữ liệu, các thiết bị đặt biệt… Những tài nguyên này được phân bố ở các vùng địa lý khác nhau và thuộc về các tổ chức khác nhau. Hình ảnh minh họa cho các tài nguyên phân phối Nhận thấy được nhu cầu phát triển ấy, nhóm chúng em đã quyết định chọn thực hiện đề tài “Nghiên cứu tính toán lưới và thực nghiệm trên một số thuật toán lý thuyết đồ thị” Mục tiêu của đề tài đề ra tìm hiểu được về tính toán lưới qua đó tận dụng các kiến thức có được để có thể cài đặt một số thuật toán trên lý thuyết đồ thị, nhằm có thể giải quyết các vấn đề tìm đường đi khi số đỉnh tương đối lớn… Các nội dung chính: • Nghiên cứu tính toán lưới http://etrithuc.vn • Tìm hiểu các môi trường hỗ trợ • Tìm hiểu lập trinh song song và phân tán • Cài đặt một số thuật toán với kiến thức có được Nội dung của luận văn được chia làm 6 chương : Chương 1. Giới thiệu : Giới thiệu tổng quan về tính toán lưới, khái niệm lịch sử phát triển. Chương 2. Tính toán song song và phân bố : Trình bày về các kiến trúc, mô hình xử lý song song và phân bố, cách thức xây dựng chương trình, thiết kế thuật toán… Chương 3. Các môi trường hỗ trợ tính toán lưới : Tìm hiểu về các môi trường đang được sử dụng và nghiên cứu hiện nay trên thế giới. Chương 4. Mô hình lập trình truyền thông điệp - MPI : Mô hình cụ thể được dùng để phát triển ứng dụng MPI. Chương 5. Thử nghiệm các thuật toán lý thuyết đồ thị : Cách thức xây dựng chương trình , các khái niệm lý thuyết, thực nghiệm thực tế … Chương 6. Kết luận – Hướng phát triển : Nêu các kết quả đã đạt được, một số vấn đề còn tồn tại, định hướng mục tiêu mở rông phát triển đề tài trong tương lai. http://etrithuc.vn Mục lục Chương 1. Giới thiệu . 14 1.1. Các khái niệm 14 1.2. Những thách thức đối với tính toán lưới 17 Chương 2. Tính toán song song và phân bố 18 2.1. Khái niệm . 18 2.2. Nền tảng tính toán song song và phân bố . 19 2.2.1. Kiến trúc xử lý song song và phân bố . 19 2.2.2. Tổ chức vật lý của các nền tảng song song và phân bố . 26 2.3. Một số mô hình lập trình song song thông dụng . 27 2.3.1. Mô hình chia sẽ không gian bộ nhớ . 27 2.3.2. Mô hình truyền thông điệp 28 2.4. Cách thức xây dựng một chương trình song song và phân bố . 30 2.4.1. Các thuật ngữ căn bản 31 2.4.2. Thiết kế thuật toán song song 33 2.4.3. Một số phương pháp tối ưu 46 2.4.4. Các mô hình thuật toán song song . 50 Chương 3. Các môi trường hỗ trợ tính toán lưới . 55 3.1. Giới thiệu 55 3.2. Các vấn đề khi lập trình luới 56 3.2.1. Tính mang chuyển, tính khả thi và khả năng thích ứng . 56 3.2.2. Khả năng phát hiện tài nguyên 57 3.2.3. Hiệu năng . 57 3.2.4. Dung lỗi . 58 3.2.5. Bảo mật 58 3.2.6. Các siêu mô hình 59 3.3. Tồng quát về các môi trường hỗ trợ 59 http://etrithuc.vn 3.3.1. Một số môi trường Grid . 59 3.3.2. Những mô hình lập trình và công cụ hỗ trợ . 63 3.3.3. Môi trường cài đặt . 69 3.4. Những kỹ thuật nâng cao hỗ trợ lập trình 81 3.4.1. Các kỹ thuật truyền thống 81 3.4.2. Các kỹ thuật hướng dữ liệu 82 3.4.3. Các kỹ thuật suy đoán và tối ưu . 83 3.4.4. Các kỹ thuật phân tán . 83 3.4.5. Nhập xuất hướng Grid . 84 3.4.6. Các dịch vụ giao tiếp cấp cao 84 3.4.7. Bảo mật 86 3.4.8. Dung lỗi . 86 3.4.9. Các siêu mô hình và hệ thống thời gian thực hướng Grid . 88 3.5. Kết luận 89 Chương 4. Mô hình lập trình truyền thông điệp - MPI 91 4.1. Các khái niệm cơ bản 92 4.2. Cấu trúc chương trình MPI 95 4.3. Trao đổi thông tin điểm-điểm . 96 4.3.1. Các thông tin của thông điệp . 97 4.3.2. Các hình thức truyền thông 97 4.3.3. Giao tiếp blocking 99 4.3.4. Giao tiếp non-blocking 103 4.4. Trao đổi thông tin tập hợp 109 4.4.1. Đồng bộ hóa . 109 4.4.2. Di dời dữ liệu trong nhóm . 109 4.4.3. Tính toán gộp . 113 4.5. Các kiểu dữ liệu . 118 4.5.1. Những kiểu dữ liệu đã được định nghĩa 118 4.5.2. Các kiểu dữ liệu bổ sung 119 123doc.vn

Ngày đăng: 25/01/2013, 15:48

Hình ảnh liên quan

Hình ảnh minh họa cho các tài nguyên phân phối - CNTT1001

nh.

ảnh minh họa cho các tài nguyên phân phối Xem tại trang 7 của tài liệu.
Hình 2- 1: Phân lọai hệ thống máy tính theo Flynn-Johnson 2.1.1.SISD  - CNTT1001

Hình 2.

1: Phân lọai hệ thống máy tính theo Flynn-Johnson 2.1.1.SISD Xem tại trang 20 của tài liệu.
Hình 2-3 :Kiến trúc SIMD - CNTT1001

Hình 2.

3 :Kiến trúc SIMD Xem tại trang 21 của tài liệu.
Trong hình trên là ví dụ về một bộ xử lý song song với kiến trúc MISD. Một dịng dữ liệu đơn đi vào một máy tính gồm 5 bộ xử lý - CNTT1001

rong.

hình trên là ví dụ về một bộ xử lý song song với kiến trúc MISD. Một dịng dữ liệu đơn đi vào một máy tính gồm 5 bộ xử lý Xem tại trang 23 của tài liệu.
Hình 2-5 :Kiến trúc MIMD - CNTT1001

Hình 2.

5 :Kiến trúc MIMD Xem tại trang 24 của tài liệu.
Đồ th ịt ương tá c: là mơ hình thể hiện sự tương tác giữa các tác vụ. Các nút trong đồ thị tương tác thế hiện các tác vụ cịn các cạnh nối th ể - CNTT1001

th.

ịt ương tá c: là mơ hình thể hiện sự tương tác giữa các tác vụ. Các nút trong đồ thị tương tác thế hiện các tác vụ cịn các cạnh nối th ể Xem tại trang 32 của tài liệu.
Hình 2-10 : (a) Phân các ma trận nhập và xuất thành các ma trận con       (b) Phân hoạch phép nhân ma trận thành 4 tác vụ - CNTT1001

Hình 2.

10 : (a) Phân các ma trận nhập và xuất thành các ma trận con (b) Phân hoạch phép nhân ma trận thành 4 tác vụ Xem tại trang 35 của tài liệu.
Hình 2-1 2: Phân họach bài tốn nhân ma trận theo ma trận trung gian 3- 3-chiều  - CNTT1001

Hình 2.

1 2: Phân họach bài tốn nhân ma trận theo ma trận trung gian 3- 3-chiều Xem tại trang 38 của tài liệu.
dụng ánh xạ tĩnh sẽ hiệu quả hơn. Tuy nhiên, trong mơ hình chia sẽ - CNTT1001

d.

ụng ánh xạ tĩnh sẽ hiệu quả hơn. Tuy nhiên, trong mơ hình chia sẽ Xem tại trang 45 của tài liệu.
Hình 3- 1: mơ hình NetSolve - CNTT1001

Hình 3.

1: mơ hình NetSolve Xem tại trang 60 của tài liệu.
3.3.2. Những mơ hình lập trình và cơng cụ hỗ trợ - CNTT1001

3.3.2..

Những mơ hình lập trình và cơng cụ hỗ trợ Xem tại trang 63 của tài liệu.
Hình 4- 3: Blocking và non-blocking - CNTT1001

Hình 4.

3: Blocking và non-blocking Xem tại trang 94 của tài liệu.
Hình 4-7 :T hứ tự các xử lý - CNTT1001

Hình 4.

7 :T hứ tự các xử lý Xem tại trang 102 của tài liệu.
Hình 4-9 :Giao tiếp non-blocking - CNTT1001

Hình 4.

9 :Giao tiếp non-blocking Xem tại trang 103 của tài liệu.
Hình 4-1 3: Hàm MPI_Allgather - CNTT1001

Hình 4.

1 3: Hàm MPI_Allgather Xem tại trang 112 của tài liệu.
Hình 4-1 4: Hàm MPI_Alltoall - CNTT1001

Hình 4.

1 4: Hàm MPI_Alltoall Xem tại trang 113 của tài liệu.
Hình 4-1 5: Hàm MPI_Reduce - CNTT1001

Hình 4.

1 5: Hàm MPI_Reduce Xem tại trang 114 của tài liệu.
Hình 4-16 : Sử dụng 8 xử lý để tính giá trị tuyệt đối - CNTT1001

Hình 4.

16 : Sử dụng 8 xử lý để tính giá trị tuyệt đối Xem tại trang 116 của tài liệu.
http://etrithuc.vnHình 4-17 Hàm Mpi-Allreduce  - CNTT1001

http.

//etrithuc.vnHình 4-17 Hàm Mpi-Allreduce Xem tại trang 117 của tài liệu.
trên các tiến trình từ dến i. Hình vẽ sau đây sẽ minh họa rõ hơn về điều này  - CNTT1001

tr.

ên các tiến trình từ dến i. Hình vẽ sau đây sẽ minh họa rõ hơn về điều này Xem tại trang 118 của tài liệu.
Hình 5-1.1. - CNTT1001

Hình 5.

1.1 Xem tại trang 131 của tài liệu.
Hình 5-1.3. - CNTT1001

Hình 5.

1.3 Xem tại trang 132 của tài liệu.
Hình 5-1.5 - CNTT1001

Hình 5.

1.5 Xem tại trang 133 của tài liệu.
Hình 5-1. Thuật tốn Dijkstra tuần tự - CNTT1001

Hình 5.

1. Thuật tốn Dijkstra tuần tự Xem tại trang 134 của tài liệu.
Hình 5- 2: Thuật tốn Dijkstra song song Các bước thực hiện song song hố như sau :  - CNTT1001

Hình 5.

2: Thuật tốn Dijkstra song song Các bước thực hiện song song hố như sau : Xem tại trang 135 của tài liệu.
Giống như hình vẽ minh họa thuật tốn Dijkstra song song. - CNTT1001

i.

ống như hình vẽ minh họa thuật tốn Dijkstra song song Xem tại trang 136 của tài liệu.
Từ dịng lệnh của màn hình Console gõ #make - CNTT1001

d.

ịng lệnh của màn hình Console gõ #make Xem tại trang 138 của tài liệu.
Hình c b4  - CNTT1001

Hình c.

b4 Xem tại trang 144 của tài liệu.
Hình d b5  - CNTT1001

Hình d.

b5 Xem tại trang 145 của tài liệu.
Hình 5- 5: Thuật tốn Bellman-Ford song song Thực hiện  - CNTT1001

Hình 5.

5: Thuật tốn Bellman-Ford song song Thực hiện Xem tại trang 149 của tài liệu.

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