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

Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận

117 20 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

Định dạng
Số trang 117
Dung lượng 3,57 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục tiêu của đề tài là tìm hiểu mô hình tính toán song song sử dụng bộ nhớ chia sẻtrong nhu cầu phát triển cuộc sống, qua đó với những kiến tìm hiểu cài đặt một sốthuật toán trên ma trận

Trang 1

Danh mục hình vẽ

Hình 1.1.1.3.1: Website của dự án BIOGRID 9

Hình 1.2.1.1: Sự khác giữa quá trình đơn luồng và quá trình đa luồng 28

Hình 3.3.2: Mô tả cấu trúc thực hiện khối mã xử lý luồng song song 56

Trang 2

Hình 4.2.2.3: Mô tả theo khối màu 99

Trang 3

Mục lục PHẦN MỞ ĐẦU

CHƯƠNG I: CÁC MÔ HÌNH THUẬT TOÁN SONG SONG

1.1 Bộ nhớ phân tán (Distributed Memory System) 8

1.1.1 Tính toán lưới (Grid Computing) 8

1.1.1.1 Giới thiệu chung 8

1.1.1.2 Định nghĩa tính toán lưới – Grid Computing 8

1.1.1.3 Tổng quan về mô hình tính toán lưới 8

1.1.1.4 Các giao thức và dịch vụ lưới (Grid Protocol and Services)

15 1.1.1.5 Một số dạng lưới – Grid .

17 1.1.1.6 Tình hình nghiêm cứu tính toán lưới ở Việt Nam

19 1.1.2 Tính toán dạng Cluster

21 1.1.1.2.1 Tổng quan mô hình cụm

21 1.1.1.2.2 Cấu trúc của Cluster 23

1.1.1.2.3 Cluster nhiều địa điểm phân tán 25

1.1.1.2.4 Tối ưu hóa các thiết bị lưu trữ trên Cluster 25

1.1.1.2.5 Tính mở của Cluster 26

1.2 Bộ nhớ chia sẻ 27

1.2.1 Đa luồng (Pthread) 25

Trang 4

1.21.1 Tổng quan về đa luồng 25

1.2.1.1.2 Các lợi ích của tiến trình đa luồng 29

1.2.1.1.3 Luồng người dùng và luồng nhân 29

30

32

35

37

CHƯƠNG II: CÁC PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN SONG SONG 38

2.1 Cách xây dựng một chương trình song song

38

38

2.2.1 Phân hoạch 38 2.2.2 Tác vụ 38 2.2.3 Granularity 38

Trang 5

2.3 Thiết kế thuật toán song song

392.3.1 Một số phương pháp phân hoạch 39

39

39

42

44

2.3.1.5 Kết hợp các phép phân hoạch ( phân hoạch lai) 45

46

47

47

2.3.3 Một số phương pháp giảm biết chi phí tương tác 48

48

Trang 6

2.3.3.2 Cực tiểu tần số tương tác 49

2.3.3.3 Giảm thiểu tối đa các điểm xung đột, tranh chấp 49

2.3.3.4 Đan xen các phép tính và tương tác 51

2.3.3.5 Tạo bản sao dữ liệu hay các phép tính toán 51

2.3.4 Các mô hình thuật toán song song 52

52

53

2.3.4.3 Mô hình dây chuyền (pipeline) hay Producer-Consumer 54

54

CHƯƠNG III: LẬP TRÌNH OpenMP 55 3.1 Khái quát 55

3.2 Giới thiệu

55

Trang 7

3.3 Mô hình lập trình OpenMP 56

3.4 Tham số của OpenMP

59

3.4.1 Định dạng tham số cho C/C++ 59

60

60

3.4.4 Cấu trúc chia sẻ công việc 63

3.4.4.1 Chỉ dẫn cấu trúc chia sẻ công việc Do/for 64

3.4.4.2 Chỉ dẫn cấu trúc chia sẻ công việc SECTIONS

67

3.4.4.3 Chỉ dẫn cấu trúc chia sẻ công việc SINGLE

68

3.4.5 Phối hợp giữa cấu trúc chia sẻ công việc song song 69

3.4.5.1 Chỉ dẫn song song DO/for

69

3.4.5.2 Chỉ dẫn song song SECTIONS 69

Trang 8

3.4.6 Cấc trúc TASK 70 3.4.7 Đồng bộ cấu trúc 70

71

3.4.7.2 Đồng bộ hoá cấu trúc chỉ dẫn CRITICAL 72

3.4.7.3 Cấu trúc đồng bộ chỉ dẫn BARRIER

73

74

74

3.4.7.6 Chỉ dẫn đồng bộ hoá ORDERED

75

3.4.7.7 Cấu trúc đồng bộ chỉ dẫn TASKWAIT

75

3.4.8 Chỉ dẫn THREADPRIVATE 76

3.4.9 Các mệnh đề phạm vi dữ liệu (Data Scope Attribute Clauses) 78

78

Trang 9

3.4.9.2 Mệnh đề SHARED

79

80

80

80

81

81

3.4.10 Tổng thể Mệnh đề/Chỉ dẫn 83

3.4.11 Kết nối chỉ dẫn và Quy tắc lồng nhau 84

3.4.11.1 Kết nối chỉ dẫn

84

3.4.11.2 Quy tắc lồng nhau

84

85

3.5.1 OMP_SET_NUM_THREADS 85

Trang 10

3.5.3 OMP_GET_MAX_THREADS

86

86

87

3.5.6 OMP_IN_PARALLEL 87

87

88

3.5.9 OMP_SET_NESTED

88

88

89

89

89

Trang 11

90

90

90

90

91

3.6.1 OMP_SCHEDULE 91

91

91

91

3.6.5 OMP_STACKSIZE

91

3.6.6 OMP_MAX_ACTIVE_LEVELS

92

92

3.7 Vấn đề bộ nhớ và sự thi hành

Trang 12

92 3.8 Cấu trúc tổng quát OpenMP

93 Chương IV : Ứng dụng song song hóa một trong các thuật toán 4.1 Tính tổng từ 1->N

95 4.1.1.Thuật toán tuần tự

95 4.1.2 Thuật toán song song

95 4.1.3 Đánh giá thuật toán

95 4.2 Nhân hai ma trận

96 4.2.1 Thuật toán tuần tự

96 4.2.2 Thuật toán song song

97 4.2.3 Đánh giá thuật toán 100

4.3 Ứng dụng trong sắp xếp nhanh (Quicksort) 101

4.3.1 Giới thiệu 101

4.3.2 Thuật toán tuần tự 101

4.3.3 Thuật toán song song 103

4.3.4 Đánh giá thuật toán 105

Trang 13

KẾT LUẬN 107 TÀI LIỆU THAM KHẢO 109

Trang 14

Phần mở đầu

Chúng ta biết rằng một nguyên nhân gây nên thời gian trễ trên bộ nhớ và cácthiết bị lưu trữ là máy tính với bộ xử lý có giới hạn về hiệu năng tính toán tiêu haokinh tế và tốn nhiều thời gian Sự phát triển công nghệ nhằm tìm ra những giải phápgiải quyết vấn đề sao cho hiệu năng tính toán đạt cao nhất Việc tiếp cận và nghiêmcứu tính toán song song đã góp phần biến đổi hàng loạt các ngành khoa học kỹthuật Theo nghiên cứu cách tiếp cận với song song có thể qua mô hình bộ nhớ phântán, hoặc mô hình bộ nhớ chia sẻ

Dựa trên mô hình phần cứng là cách tiếp cận đơn giản nhất Các máy tính sẽđược kết nối với nhau trong mạng máy tính Hệ thống bộ nhớ phân tán là hệ thốngmáy tính song song được dùng phổ biến nhất hiện nay, bao gồm tính toán lưới-Grid,tính toán cụm-Cluster

Ngược lại thì mô hình bộ nhớ chia sẻ phức tạp hơn Trong mô hình là tậphợp các máy tính kết hợp chặt chẽ hơn bằng cách đưa vào bộ nhớ một không gianđịa chỉ duy nhất Bởi hoạt động trên cơ chế truy cập thông qua các tập lệnh cơ bảnnên truy cập nhanh hơn mạng trong hệ thống phân tán, nên truy cập từ xa có thờigian trễ ngắn hơn và băng thông rộng hơn Cấu trúc của mô hình có đa luồng-Pthreads, và đa bộ xử lý-OpenMP

Ý tưởng song song đã có từ lâu nhưng do sự hạn chế phần cứng nên chưađược phát triển Hiện nay các công nghệ máy tính phát triển rất mạnh mẽ, thu hútnhiều nhà phát triển phần cứng và phần mềm nên tính toán song song trên thực tếđang dần thay thế tính toán tuần tự, điểm nổi bật nhất là thời gian đã được giảm rõrệt Sự ra đời của lõi kép dual core trên máy tính để bàn, máy tính cá nhân đã ứngdụng tính toán song song sử dụng bộ nhớ chia sẻ càng phổ biến Các nhà phát triển

đã tiến hành song song hóa sản phẩm của mình thích nghi với phần cứng và phùhợp với nhu cầu phát triển của thời đại Nhưng vẫn còn hạn chế do tính toán songsong chỉ ứng dụng trên một bộ xử lý nên chỉ mục đích chính và quan trọng là gópphần tăng hiệu năng của máy tính, tiết kiệm thời gian, chi phí thực hiện giải quyếtvấn đề

Chính nhu cầu phát triển đó, tôi đã chọn đề tài “Nghiên cứu mô hình tínhtoán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận”

Trang 15

Mục tiêu của đề tài là tìm hiểu mô hình tính toán song song sử dụng bộ nhớ chia sẻtrong nhu cầu phát triển cuộc sống, qua đó với những kiến tìm hiểu cài đặt một sốthuật toán trên ma trận nhằm giảm thời gian tính toán ma trận trên máy tính hỗ trợtính toán song song sử dụng bộ nhớ chia sẻ.

Nội dung của đề tài gồm 4 chương:

Chương 1: Các mô hình tính toán song song – Thiệu mô hình song song kiểu

bộ nhớ phân tán và kiểu bộ nhớ chia sẻ

Chương 2: Phương pháp thiết kế các thuật toán song song – Mô tả các kiếntrúc, mô hình xử lý song song, cách thức xây dựng chươn trình song song, thiết kếthuật toán song song

Chương 3: Lập trình OpenMP - Giới thiệu mmoo hình lập trình OpenMP làmột mô hình lập trình tính toán song song sử dụng bộ nhớ chia sẻ phổ biến nhấthiện nay

Chương 4: Một số thuật toán trên ma trận - Nêu ý tưởng thuật toán thuật toánsong song, tuần tự, cách xây dựng, đánh giá thuật toán và kết quả thuật toán

Trang 16

CHƯƠNG I: CÁC MÔ HÌNH THUẬT TOÁN SONG SONG

1.1 Bộ nhớ phân tán (Distributed Memory System)

1.1.1 Tính toán lưới (Grid Computing)

1.1.1.1 Giới thiệu chung

Ngày nay người ta đang tập trung nghiêm cứu các tài nguyên phân bố mộtcách hợp lý để tận dụng được tối ưu nhất khả năng tính toán của máy tính của máytính đơn Các giải pháp ngày nay được biết đến với tên gọi khác nhau như: Meta –Computing, Salable – Computing, Global – Computing, Internet – Computing vàquen thuộc 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 của các máy tính trên toàn cầu thành mộtmá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 khả năng tính toán khổng lồ, góp phần giải quyết các vấn đề khó khăntrong khoa học và công nghệ Ngày này nó ngày càng được hỗ trợ mạnh hơn nhiềulần của các thiết bị phần cứng, băng thông …

Tính toán lưới có khả năng chia sẻ, lựa chọn, thu gom số lượng lớn những tàinguyê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ớinguồn dữ liệu, các thiết bị đặc biệt …Các 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

1.1.1.2 Định nghĩa tính toán lưới – Grid Computing

Tính toán lưới là một công nghệ cho phép các tổ chức ảo chia sẻ tài nguyênphân tán theo mục đích chung mà không yêu cầu phải có một trung tâm điều khiểntập trung

Tổ chức ảo có thể mở rộng từ bộ những bộ phận nhỏ trong cùng một công tycho đến tổ chức bao gồm nhiều thành viên rải rác khắp địa cầu

Tài nguyên có thể là một tài nguyên tính toán như máy tính cá nhân, máytính xách tay, trạm làm việc hay máy chủ …

1.1.1.3 Tổng quan về mô hình tính toán lưới

Trong những năm đầu thập niên 90, những nhóm nghiêm cứu bắt đầu khaithác các nguồn tài nguyên tính toán phân tán trên Internet Các nhà khoa học đã tậptrung và sử dụng hàng trăm các máy trạm để thử nghiệm các chương trình songsong như thiết kế các phân tử và hiển thị đồ họa trên máy tính Trong khi đó các

Trang 17

nhóm nghiêm cứu khác đã kết hợp các siêu máy tính lớn lại với nhau tạo thành mộtsiêu máy tính ảo duy nhất, rồi phân phối các phần của ứng dụng rất lớn cho các máytính trên một mạng diện rộng, ví dụ các máy tính giả lập các ứng dụng tương tácgiữa các chất lỏng và cánh quạt chân vịt tàu … Hơn nữa phạm vi của dự án nghiêmcứu này đã nêu rõ các tiềm năng thực sự của mạng máy tính, với cở sở phần mềm

và tin học để phát triển nó xa hơn nữa

Mạng lưới (Grid) là hệ thống phần cứng và phần mềm kết nối mạng máy tínhthế hệ sau, cho phép chia sẻ các tài nguyên tính toán (Computing resources) của cácmáy tính nối mạng, làm tăng gấp nhiều lần hiệu năng và tốc độ xử lý thông tin Rõhơn Grid là một kiến trúc tính toán chuyển giao các tài nguyên lưu trữ và tính toánnhư thể là dịch vụ trên Internet Đây là bước phát triển tiếp theo về cơ sở hạ tầng kỹthuật, cho phép kết nối các máy tính phân tán, các thiết bị di động, các công cụ, cở

sở dữ liệu, các ứng dụng phần mềm, và cung cấp cách thức truy cập đến cộng đồngngười dùng để cho phép tính toán, trao đổi thông tin và cộng tác

Hai dự án Grid tiêu biểu

- Dự án BIOGRID do trường Đại học Osaka chủ trì thực hiện, nằm trong

chương trình công nghệ thông tin của chính phủ Nhật Bản, sự phối hợp của các bộgiáo dục, văn hóa, thể thao, khoa học và công nghệ Dự án là bước khởi đầu để xâydựng các siêu máy tính để giải quyết vấn đề của sinh học và y khoa đặt ra

Hình 1.1.1.3.1: Website của dự án BIOGRID

Trang 18

- Dự án DOE Science Grid của Bộ năng lượng, Hoa kỳ: Dự án được xây

dựng với quy mô lớn nhằm phối hợp nhiều cơ quan khoa học của Mỹ Tạo cở sở hạtầng công nghệ thông tin (Cyberifrastructure) phục vụ cho việc phát triển và triểnkhai các lĩnh vực tính toán phân tán (Distributed Computing) xử lý dữ liệu và khaithác nguồn tài nguyên công cụ (Instrument resources)

Hình 1.1.1.3.2: Website của dự án DOE Science GridMột số hệ thống Grid hiện nay là NASA Information Power Grid (IPG).DoD Distance Computing và NetSolve cho chia sẻ và khai thác phần mềm toán học,Nimrod cho chia sẽ tài nguyên trên phạm vi trường học, SETI@Home cho tìm kiếmthông minh ngoài trái đất, hay APGrid để kết nối các trung tâm máy tính ở vành đaiChâu Á Thái Bình Dương

Tính toán lưới là công nghệ nền trong việc hình thành mạng lưới, là nền tảngphần mềm chạy trên nền các phần cứng kết nối mạng truyền thống giúp xây dựngnhững ứng dụng mạng lưới có năng lực tính toán rất mạnh mẽ, có khả năng truyềntải lượng dữ liệu khổng lồ, khả năng lưu và truy cập thông tin trên mạng mà bằnggiải pháp phần mềm và công nghệ mạng Internet truyền thống chỉ dựa trên giaothức TCP/IP không thể đạt tới

Trang 19

Hình 1.1.1.3.3: Tính toán lưới

Mạng lưới được xây dựng trên nền kiến trúc mở và phân tầng (Có thể so

sánh với cấu trúc phân tầng của TCP/IP) Trong mỗi tầng của mạng lưới, các thànhphần được chia sẻ các thuộc tính chung và có thể được bổ sung những tính năngmới mà không ảnh hưởng đến tầng khác:

hướng người dùng để truy cập và sử dụng tài nguyên mạng lưới

a Tầng tác chế

Chức năng chính của tầng này là cung cấp các loại tài nguyên chia sẻ, đượcphép truy cập của mạng lưới thông qua các giao thức mạng lưới Các loại tàinguyên bao gồm: tài nguyên tính toán, các hệ thống lưu trữ dữ liệu, các danh mụcthông tin, các tài nguyên mạng và các đầu cảm biến

Các thành phần ở tầng này được triển khai ở mức cục bộ, các thao tác tàinguyên đặc biệt diễn ra trên các tài nguyên đặc biệt trong tầng này chính là một kếtquả của các thao tác được chia sẻ các chức năng được cài đặt ở lớp nền với các thaotác chia sẻ được hỗ trợ ở tầng khác

Trang 20

Các loại các tài nguyên này đều ràng buộc bởi 2 cơ chế:

 Cơ chế quản lý tài nguyên (Resources Management Mechanism): Cho phépcung cấp khả năng điều phối chất lượng dịch vụ

 Cơ chế thẩm tra (Enquiry Mechanism): Cho phép tìm hiểu cấu trúc, tìnhtrạng và các tính năng của tài nguyên

Các loại tài nguyên chính trong tầng tác chế:

Tài nguyên tính toán : Là cơ chế bắt buộc phải tuân thủ khi bắt đầu

chạy chương trình, cho phép kiểm soát, điều khiển việc thi hành các tiến trình

Cơ chế quản lý: Cho phép quản lý các loại tài nguyên đã được xác định ví trílàm cho các tiến trình đạt được lợi ích nhiều hơn

Cơ chế thẩm tra: Có khả năng các rõ phần cứng và phần mềm nhờ các thông tin

về tình trạng của hệ thống (Tải hiện thời, tình trạng hàng đợi …)

Tài nguyên lưu trữ : Là cơ chế bắt buộc cho việc lấy dữ liệu về và tải

lên các tệp tin cũng như cho phép chọn lọc dữ liệu từ các tệp tin ở xa

Cơ chế quản lý: Làm cho việc di chuyển tập tin dễ dàng hơn (không gian, băngthông đĩa, băng thông mạng, tải của CPU …)

Cơ chế thẩm tra: Xác định tình trạng phần cứng và phần mềm thông qua cácthông tin tải Ví dụ dung lượng đĩa còn trống, băng thông sử dụng …

Tài nguyên mạng :

Cơ chế quản lý: Có tác dụng làm cho việc lưu chuyển trong mạng tốt hơn, hiệuquả hơn thông qua các quyền ưu tiên

Cơ chế thẩm tra: Cho phép xác định các đặc điểm của mạng

Các kho mã nguồn: Là nơi quản lý tất cả các loại tài nguyên và tất cả

các phiên bản mã nguồn …

Các bộ sưu tập : Là cơ chế bắt buộc thực hiện và truy vấn các bộ sưu

tập cũng như các thao tác cập nhật cơ sở dữ liệu quan hệ …

b Tầng kết nối

Đây là tầng quan trọng để tạo nên các hạt nhân của giao thức và truyền thôngbắt buộc của các giao dịch đặc trưng trong hệ thống mạng lưới Giao thức truyềnthông cho phép chuyển đổi dữ liệu qua lại giữa các loại tài nguyên ở tầng tác chế.Giao thức xác thực được xây dựng trên các dịch vụ truyền thông để cung cấp các cơ

Trang 21

chế Giao thức xác thực được xây dựng trên các dịch vụ truyền thông để cung cấpcác cơ chế mã hóa và bảo mật trong việc kiểm tra xác thực người dùng và tàinguyên mạng lưới.

Truyền thông bao gồm các công đoạn: truyền thông tin, định tuyến và đặt

tên Những giao thức này tương tự như giao thức trong TCP/IP: Internet Protocol

(IP), Transpost Protocol (TCP,UDP) và các giao thức tầng ứng dụng (DNS,OSPF,RSVP …)

Các vấn đề bảo mật phức tạp trong mạng lưới được giải quyết bằng các giảipháp xây dựng và nâng cấp từ các chuẩn đã có Trong truyền thông hiện có rấtnhiều các chuẩn bảo mật được phát triển trong ngữ cảnh Internet Giải pháp xácthực trong môi trường mạng lưới các tổ chức ảo bao gồm nhiều các đặc điểm sau:

- Cơ chế đăng nhập một lần (Single Sign On): Người dùng chỉ cần đăng nhậpmột lần duy nhất vào mạng lưới Sau đó hệ thống phải quản lý người đã xác thực vàcho phép truy cập các tài nguyên được phép trong lớp chế tác mà không yêu cầucung cấp các thông tin xác thực nữa

- Cơ chế ủy quyền (Delegation, Proxy): Người dùng có thể ủy quyền lại chomột chương trình trong một khoảng thời gian xác định truy cập đến các loại tàinguyên mà được phép sử dụng Chương trình này có cũng có thể ủy quyền có điềukiện một phần các tập quyền của nó cho một chương trình con khác Hệ thống mạnglưới phải hiểu, kiểm soát chặt chẽ và đáp ứng tốt cơ chế ủy quyền này một cáchtrong suốt đối với chương trình được trao ủy quyền

- Cơ chế tích hợp đa giải pháp bảo mật địa phương (Integration with variouslocal security solutions): Đặc điểm của mạng lưới là mỗi site chứa tài nguyên mạnglưới đều có cơ chế bảo mật tại chỗ không giống nhau (các cơ chế xác thực nhưActive Directory, username/password, …) Cơ chế bảo mật mạng lưới phải có yêucầu thay thế giao tiếp bên trong với các cơ chế bảo mật địa phương mà không yêucầu thay thế toàn bộ các giải pháp bảo mật hiện có, nhưng cần có cơ chế ánh xạ bảomật trong các môi trường cục bộ khác nhau

- Cơ chế quan hệ tin tưởng dựa trên người dùng (User–based TrustRelationships): Người dùng có thể sử dụng các loại tài nguyên có được từ sự kếthợp của nhiều nhà cung cấp khác nhau Việc kết hợp phải đảm bảo cấu hình nhà

Trang 22

cung cấp đề tài nguyên phải tác động qua lại lẫn nhau nhưng phải đảm bảo cấu hìnhcủa cơ chế bảo mật hiện có Ví dụ, xem trường hợp một người có quyền sử dụng 2site A và B Khi đó người dùng có quyền dùng site A và B cùng một lúc mà khôngcần lập cơ chế quan hệ tin tưởng dựa trên người dùng.

c.Tầng tài nguyên

Tầng này được xây dựng trên nền tảng sẵn có của tầng kết nối Đây là tầngdùng để xác định các giao thức chính cho các quá trình thương lượng, khởi tạo,kiểm tra, điều khiển, tính toán và kiểm toán chi phí của các thao tác được chia sẻtrên các tài nguyên Những giao thức trong tầng tài nguyên sẽ gọi các chức năngtrong tầng chế tác để truy cập và sử dụng các loại tài nguyên cục bộ

Có hai loại giao thức chính trong các giao thức của tầng tài nguyên:

- Giao thức thông tin (Information protocol): Cho phép lấy các thông tin vềcấu hình, tình trạng của một loại tài nguyên nào đó trong mạng lưới

- Giao thức quản lý thông tin (Management protocol): Dùng để sắp xếp cácquản lý thứ tự các truy cập các tài nguyên chia sẻ

d Tầng kết hợp

Trong khi tầng tài nguyên chỉ cho phép truy cập đến một loại tài nguyên đơnthì tầng kết hợp lại chứa các giao thức và dịch vụ cho phép giao tiếp giữa các tàinguyên trong mạng lưới Tầng này bao gồm các dịch vụ như sau:

- Các dịch vụ thư mục (Directory Services): Cho phép các thành phần thamgia trong hệ thống mạng lưới tổ chức ảo tìm hiểu sự tồi tại và các thuộc tính của cácloại tài nguyên của họ Một dịch vụ thư mục cũng cho phép người dùng truy vấncác thuộc tính của tài nguyên, loại tài nguyên, tính khả dụng …

- Các dich vụ chứa chấp, lập lịch, môi giới (Co-allocaltion, scheduling,Broker Services): Cho phép các thành phần tham gia vào mạng lưới tổ chức ảo gửiyêu cầu đến một hay nhiều máy chủ cho các mục đích chứa chấp, lập lịch và môigiới truy cập đến các tài nguyên tương ứng

- Các dịch vụ giám sát và dự báo (Monitoring and Diagnostic Service): Chophép hệ thống hỗ trợ kiểm soát tài nguyên trong mạng lưới các tổ chức ảo

Trang 23

- Các dịch vụ nhân bản dữ liệu (Data replication Service): Cho phép hỗ trợviệc quản lý lưu trữ tài nguyên trong mạng lưới tổ chức ảo (kể cả mạng và năng lựctính toán) tạo điều kiện cho truy nhập tài nguyên đến mức cao nhất có thể.

- Các hệ thống lập trình hỗ trợ mạng lưới (Grid-enable ProgrammingSystems): Tương tự như mô hình lập trình giao tiếp ứng dụng (API) thông thường,nhưng dùng trong mạng môi trường mạng lưới Hệ thống này cho phép sử dụng cácdịch vụ mạng lưới để xác định các thông tin truyền thông tin tài nguyên, thực hiện

cơ chế bảo mật mạng lưới, định vị ví trí tài nguyên và tất cả những gì có liên quanđến mạng lưới

- Hệ thống quản lý tải và môi trường cộng tác (Workload managementsystem and Collaboration Framework): Tương tự như môi trường giải quyết vấn đềPSE (Problem Solving Envilopment), hệ thống này cung cấp các đặc tả, cách dùng

cà quản lý đa bước, quản lý đồng bộ, đa luồng, đa thành phần … trong các tiến trìnhtính toán

- Dịch vụ tìm kiếm phần mềm (Software Discovey Service): Hỗ trợ tìm kiếm

và lựa chọn các phần cài đặt và làm nền tảng cho mạng lưới

e Tầng ứng dụng

Đây là tầng cuối cùng trong kiến trúc mạng lưới, bao gồm tất cả các ứngdụng hướng tới người dùng trong môi trường mạng lưới của các tổ chức ảo Vềnguyên tắc, người sử dụng có thể tương tác với mạng lưới thông qua tầng ứng dụngmột các trong suốt mà không nhận biết sự có mặt của các tầng khác trong mạnglưới

1.1.1.4 Các giao thức và dịch vụ lưới (Grid Protocol and Services)

Dựa trên nền tảng kiến trúc lưới, ta có thể thấy được thành phần chủ đạo củamạng lưới (bao gồm các dịch vụ và giao thức đặc trưng) nằm trong phần này là cốtlõi của các tầng kết nối, tài nguyên và kết hợp tập thể Các thành phần này là cốt lõicủa công nghệ tính toán lưới Đây là hạt nhân của mọi hệ thống mạng lưới, cũnggiống như bộ xử lý trung tâm (CPU) của máy tính cá nhân

Có thể liệt kê một số nền tảng của công nghệ tính toán lưới như sau:

- Mô hình lưới – Grid : Là cơ chế cho phép xác thực và truyền thông an toàntrên mạng máy tính

Trang 24

Hình 1.1.1.4.1: Mô hình lưới – Grid

- Mô hình Globus: là một thành phần khá quan trọng trong kiến trúc quản lýtài nguyên mạng lưới, trong đó dịch vụ quản lý tài nguyên toàn cục được đặt trêncùng

Hình 1.1.1.4.2: Mô hình GlobusHình trên mô tả là tổng quan các thành phần khác nhau của kiến trúc quản lýtài nguyên mạng lưới cài đặt công cụ nền GLOBUS

Ngôn ngữ đặc tả tài nguyên mạng lưới (Resources Specification RSL): Là ngôn ngữ mô tả và truyền các thông tin yêu cầu tài nguyên tính toán, lưutrữ và chuyển tải thông tin, giữa các thành phần trong kiến trúc quản lý tài nguyênmạng lưới

Language-Một số quy ước đã được mô tả trong tài liệu đặc tả dịch vụ Grid bao gồm:

- Cách thức tạo và khai thác dịch vụ Grid

- Cách thức đặt tên và tham chiếu tới thể hiện (Instances) của dịch vụ Grid

Trang 25

- Cách mô tả giao diện cho dịch vụ Grid.

a Deparmental Grids

Deparmental Grids được triển khai để giải quyết vấn đề cho một nhóm người

cụ thể trong một công ty hay xí nghiệp, các tài nguyên không chia sẻ cho các nhómngười dùng khác Các dạng lưới quên thuộc vào lớp này là Cluster Grids, InfraGrids

- Cluster Grids: Mạng lưới nhóm - một mạng lưới gồm 1 hay nhiều hệthống kết hợp lại nhằm cung cấp 1 điểm truy xuất đơn cho người dùng Mạng nàykhông phù hợp với các ứng dụng yêu cầu hiệu năng tính toán và băng thông lớn

- Infra Grids: Infra grid là thuật ngữ được dùng bởi IBM để định nghĩa 1mạng lưới tối ưu việc sử dụng tài nguyên trong 1 xí nghiệp

b.Enterprise Grids

Enterprise Grids là hệ thống mạng lưới bao gồm các tài nguyên nằm rải ráctrong một công ty, hay xí nghiệp và cung cấp dịch vụ cho tất cả người dùng Nó baogồm các dạng sau: Enterprise grids, Intra grids, Campus grids

- Intra Grids: Theo IBM, tài nguyên chia sẻ trong các nhóm khác nhau của xínghiệp tạo thành 1 Intra Grids Intra Grid có thể chỉ hạn chế trong 1 mạng cục bộhoặc các mạng ảo VPN Thông thường là Infra grid được bảo vệ bởi hệ thống tườnglửa của công ty

- Campus Grids: Theo Sun Microsystems, cho phép nhiều dự án hoặc nhiều

bộ phận chia sẻ tài nguyên tính toán theo hướng cộng tác Campus grids có thể chứanhiều trạm, máy chủ, cũng như các tài nguyên tập trung được quản lý cục bộ nằmtại các bộ phận khác nhau trong 1 tổ chức ví dụ 1 trường đại học

- Enterprise Grids: Một enterprise grid, theo tổ chức Platform Computing,được thiết lập giữa các công ty, đối tác, và khách hàng Các tài nguyên mạng lưới

Trang 26

thông thường được chia sẻ thông qua các mua bán thông qua việc cung cấp các dịch

vụ giá trị gia tăng Một số grid thuộc loại này là: Global, Inter Grids

c Global Grids

Là những mạng lưới được phát triển dựa vào mạng Internet công cộng Nó

có thể được thiết lập bởi các công ty nhằm hỗ trợ việc kinh doanh mua bán thôngqua việc cung cấp các dịch vụ giá trị gia tăng Một số dạng Grids thuộc loại này:Global Grids, Inter grids

-Global Grids: The Sun, cho phép người dùng khai thác các tài nguyên bênngoài Global grids cung cấp sức mạnh của các tài nguyên phân tán trên khắp thếgiới nhằm khắc phục các công việc tính toán và cộng tác của người dùng

- Inter Grids: Theo IBM, cung cấp khả năng chia sẻ tài nguyên tính toán vàlưu trữ thông qua web

d Mạng lưới tính toán – Compute Grids

Mạng lưới tính toán được thành lập nhằm mục tiêu duy nhất là chia sẻ tàinguyên tính toán Các dạng điểm hình: Desktop Grids, Server Grids, High-Peformance/Cluster Grids

- Desktop Grids: Đây là mạng lưới tập hợp sức mạnh tính toán của các máytính để bàn Do hệ điều hành windows thống trị họ máy tính này nên các mạng lướithuộc dạng này chủ yếu chạy trên nền windows

- Server Grids: Một số tập đoàn lớn thường có các tài nguyên máy chủ đượcquản lý bởi bộ phận IT nằm tại nhiều địa điểm khác nhau Họ muốn tạo servergrids để chia sẻ những tài nguyên đắt giá này Thông thường các mạng lưới nàychạy trên hệ điều hành Unix/Linux

- High- performance/Cluster grids: Mạng lưới gồm các hệ thống dành riêngcho tính toán như các siêu máy tính hoặc các nhóm máy tính hiệu năng cao (đượcthiết kế cho các ứng dụng tính toán lớn)

Trang 27

f Data Grids

Tài nguyên chủ yếu được chia sẻ trong mạng lưới này là dữ liệu Hệ thốngGrid này được xây dựng nhằm tối ưu hóa các thao tác hướng dữ liệu như: lưu trữ,truy xuất, trao đổi, và chia sẻ thông tin

h Extraprise Grids

Được thiết lập giữa các công ty, đối tác và khách hàng Các tài nguyên dướidạng này thông thường được chia sẻ thông qua các mạng riêng ảo Và có các dạngđiểm hình:

- Extra Grids: Theo IBM, cho phép chia sẻ tài nguyên với các đối tác và bênngoài Liên kết giữa các tổ chức này được thiết lập bằng các dịch vụ tin cậy, nhưcác mạng riêng hay mạng riêng ảo

- Partner Grids: Tổ chức Platform Computing định nghĩa là các mạng lướigiữa các tổ chức, xí nghiệp, trong cùng lĩnh vực mà có nhu cầu cộng tác nhằm thựchiện dự án chung

1.1.1.6 Tình hình nghiêm cứu tính toán lưới ở Việt Nam

Nghiên cứu tính toán lưới ở Việt Nam đang trong giai đoạn khởi đầu và xúctiến khẩn trương Dưới đây tôi xin giới thiệu một số dự án nổi bật

a Sở bưu chính- viễn thông, sở khoa học - công nghệ thành phố Hồ Chí Minh

Sở bưu chính- viễn thông, sở khoa học - công nghệ thành phố Hồ Chí Minhkhuyến khích các tổ chức nghiêm cứu khoa học tham gia vào tổ chức PRAGRMA,

từ đó có thể tiếp cận, chuyển giao và làm chủ các công nghệ mới trong lĩnh vựclưới Đặc biệt là việc tiếp nhận thông tin, dự án nghiêm cứu, khả năng sử dụng tàinguyên tính toán của các nước trong tổ chức PRAGRMA Bên cạnh đó, thành phố

Hồ Chí Minh cũng đang xúc tiến thành lập một viện khoa học và công nghệ tínhtoán trực thuộc UBND, từ đó có thể tạo ra các sản phẩm và làm đầu mối để thamgia vào các tổ chức PRAGRMA này

b Trường Đại học Bách Khoa TPHCM

Trường Đại học Bách khoa, đại học Quốc gia TPHCM thực hiện dự án vườnươm tạo công nghệ “Các giải pháp tận dụng kỹ thuật tính toán hiệu năng và tínhtoán lưới để giải các bài toán kỹ thuật thực tế” Mục tiêu chính của dự án là tìm cácgiải pháp công nghệ có tính liên thông đa ngành để giải quyết những bài toán ứng

Trang 28

dụng lớn xuất hiện trong kỹ thuật Trong những năm đầu tiên dự án tập trung tìmhiểu các chuẩn Grid, bộ công cụ Globus Toolkit 4.0, nghiêm cứu các hệ thống máytính đã có với lưới tính toán, nghiêm cứu các vấn đề quản lý lưới, nghiêm cứuquyền sử dụng lưới, hiện thực phần mềm tham gia lưới Trong lĩnh vực ứng dụng,trong những năm đầu tiên đề tài tập trung khảo sát bài toán thực tế, nghiêm cứu cácphương pháp phân bố dữ liệu và bài toán, nghiêm cứu bảo mật dữ liệu, nghiêm cứubảo vệ thông tin cá nhân trong dữ liệu, nghiêm cứu đồng bộ các kết quả của bài toáncon Đối với bài toán lớn, nhóm nghiêm cứu thực hiện bài toán thiết kế vi mạch.

c.Trường đại học Khoa Học tự nhiên

Ở trường Đại học khoa học tự nhiên, Đại học quốc gia TPHCM, nhómchuyên môn thuộc khoa toán – tin, công nghệ sinh học đã phối hợp thực hiện một sốcác công việc liên quan đến việc cài đặt gói phần mềm BLAST của trung tâm thôngtin công nghệ sinh học Hoa Kỳ (NCBI – National Center for BiotechologyInformation) để tìm kiếm các trình tự sinh học và thử nghiệm triển khai Grid trênmạng cục bộ của khoa

Phân viện công nghệ thông tin tại TPHCM thực hiện hai đề tài liên quan đếntính toán lưới là: Đề tài 1: “Nghiêm cứu và triển khai ứng dụng Grid có tính bảomật cao” thực hiện từ 11/2004 đến 6/2006 Nhóm thực hiện đề tài đã triển khai trên

hệ thống tính toán lưới trên mạng toàn cầu kết nối với việc KISTI – Korea Institute

of Science and Technology Information, Hàn Quốc Đề tài 2: “Tính toán lưới trongviệc giải quyết một số vấn đề tin sinh học” trong năm 2005 và 2006

Hình 1.1.1.6.1: Sơ đồ hệ thống Grid của phân viện CNTT tại TPHCM

Trang 29

Hình 1.1.1.6.2: Sơ đồ kết nối hệ thống Grid với hệ thống KISTI

1.1.2 Tính toán dạng Cluster

1.1.1.2.1 Tổng quan mô hình cụm

Cludtering là một kiến trúc nhằm đảm bảo nâng cao khả năng sẵn sàng chocác hệ thống mạng máy tính Clustering cho phép sử dụng nhiều máy chủ liên kếtvới nhau tạo thành một cụm (Cluster) có khả năng chịu đựng hay chấp nhận sai sót(fault-tolerant) nhằm nâng cao độ sẵn sàng của hệ thống mạng Cluster là một hệthống bao gồm nhiều máy chủ được kết nối nới nhau theo dạng song song hay phântán và được sử dụng như một tài nguyên thống nhất Nếu một máy chủ ngừng hoạtđộng do bị sự cố hoặc nâng cấp, bảo trì thì toàn bộ công việc mà máy chủ này đảmnhận sẻ tự động chuyển sang cho máy chủ khác (trong cùng một cluster) mà khônglàm cho hoạt động của hệ thống bị ngắt hay gián đoạn, quá trình này gọi là “Fail-Over”, và việc phục hồi tài nguyên của máy chủ trong hệ thống (Cluster) được gọi

là “Fail-Back”

Việc thiết kế và lắp đặt các Cluster cần phải thỏa mãn các yêu cầu sau:

- Yêu cầu về tính sẵn sàng cao (Availability) Các tài nguyên mạng phải luônsẵn sàng cao nhất để cung cấp và phục vụ người dùng cuối và giảm thiểu sự ngưnghoạt động của hệ thống ngoài ý muốn

- Yêu cầu về độ tin cậy cao (Reliability): Độ tin cậy cao của Cluster đượchiểu là khả năng giảm thiểu tần số xảy ra các sự cố, và nâng cao khả năng chịu đựngsai sót của hệ thống

- Yêu cầu về khả năng mở rộng được (Scalability): Hệ thống phải có khảnăng dế dễ dàng cho việc nâng cấp, mở rộng trong tương lai Việc nâng cấp mở

Trang 30

rộng bao hàm cả việc thêm thiết bị, máy tính vào hệ thống để nâng cao chất lượngdịch vụ, cũng như việc thêm số lượng người dùng, thêm ứng dụng, dịch vụ và tàinguyên mạng khác.

Ba yêu cầu trên gọi tắt là RAS (Reliability – Availability – Scalability),những hệ thông đáp ứng được ba yêu cầu trên được gọi là hệ thống RAS ( Phân biệtvới Remote Access Service)

Cũng cần chú ý rằng hiệu quả của hệ thống Clustering phục vụ vào sự tươngthích giữa các ứng dụng dịch vụ, giữa phần cứng và phần mềm Ngoài ra, kỹ thuậtClustering không thể chống lại các sự cố do virus, sai sót của phần mềm hay các saisót người sử dụng Đế chống lại các sự cố này cần xây dựng một cơ sở dữ liệu đượcbảo vệ chắn chắc cũng như có các kế hoạch khôi phục, backup dữ liệu

Hệ thống máy tính song song ghép cụm là các hệ thống máy tính song songđược xây dựng từ các nút tính toán và thiết bị mạng thông dụng Mỗi nút tính toánđóng vai trò điều khiển vào/ra là một hệ thống hoàn chỉnh, có khả năng làm việcđộc lập Hệ thống tính toán song song ghép cụm là một máy tính song song, trongđó:

- Các tài nguyên tính toán bao gồm bộ xử lý và bộ nhớ trong tại mỗi máytính

- Các tài nguyên tính toán này có khả năng truyền thông và kết hợp với nhauthông qua cáp mạng Thông thường, quy mô của hệ thống chỉ giới hạn trong mộtmạng cục bộ (LAN), trong đó có một máy tính đóng vai trò là máy chủ (Server), cácmáy còn lại đóng vai trò là nút tính toán (Computing node)

Việc thiết lập hệ thống tính toán song song ghép cụm từ những máy tính cócấu trúc đơn giản sử dụng công nghệ mạng phổ biến đã bắt đầu từ năm 1994 với môhình Beowulf Cluster của Thomas Sterling và Donal Becker Hệ thống tính toánsong song phân cụm rẻ hơn nhiều so với một siêu máy tính cùng sức mạnh Điềunày làm cho các hệ thống tính toán song song phân cụm này càng phổ biến và đặcbiệt phù hợp với các nước đang phát triển, các trường đại học Tuy nhiên, các hệthống tính toán song song phân cụm cũng có những hạn chế như: quá trình triểnkhai, cấu hình hệ thống tương đối phức tạp, hệ thống hoạt động không ổn định bằngcác siêu máy tính Nhược điểm lớn nhất là vấn đề truyền thông giữa các nút tính

Trang 31

toán Việc nghiêm cứu nhằm nâng cao khả năng truyền thông là vấn đề quan trọnghàng đầu trong quá trình phát triển các cấu trúc và mô hình phân cụm Các hệ thốngtính toán song song hiện đại đều dùng kiến trúc mạng tiên tiến như: Myrinet,Gigabit Ethernet, … Nhằm nâng cao tốc độ truyền giữa các nút tinh toán

1.1.1.2.2 Cấu trúc của Cluster

Cluster được tổ chức thành các nhóm (farm hay pack) Trong hầu hết cáctrường hợp, các dịch vụ ở tầng trước và giữa (front-end and middle-tiers services)

được tổ chức thành các farm sử dụng các Clone, trong khi các dịch vụ tầng sau

(back-end services) được tổ chức thành các pack

Cluster Farm là một nhóm các máy chủ chạy các dịch vụ giống nhau, nhưngkhông dùng chung cơ sở dữ liệu Được gọi là Farm bởi chúng xử lý bất cứ yêu cầunào gửi đến cho chúng bằng cách bản sao cơ sở dữ liệu (tài nguyên) giống hệt nhauđược lưu trữ cục bộ, chứ không dùng chung một bản cơ sở dữ liệu Cũng bởi vậynên các máy chủ thành viên của Farm làm việc độc lập và chúng được gọi là Clone(Clone là máy tính được thiết kế mô phỏng chức năng của máy tính khác)

Cluster Pack là nhóm các máy hoạt động cùng với nhau và chia sẻ với nhaucác phần cở sở dữ liệu dùng chung Được gọi là Pack vì sự hoạt động của các máychủ trong Pack có liên hệ chặt chẽ với nhau và chúng làm việc theo một phươngthức thống nhất để quản lý và duy trì các dịch vụ

Chế độ hoạt động của cluster:

Mỗi máy chủ trong Cluster được gọi là một nút (Cluster Node), có thể đượcthiết lập ở chế độ chủ động (Active) hay thụ động (Passive) Khi một nút ở chế độchủ động nó sẽ chủ động xử lý các yêu cầu Còn khi ở chế độ thụ động thì sẽ nằm ởchế độ nóng Stanby chờ để sẵn sàng thay thế cho nút khác nếu bị hỏng Nguyên lýhoạt động của Cluster mô tả như hình

Trang 32

Hình 1.1.2.2.1: Nguyên lý hoạt động của một ClusterTrong một Cluster có nhiều nút có thể hợp lại (cả nút chủ động và thụ động).Trong những mô hình loại này việc quyết định một nút được cấu hình là máy chủđộng hay thụ động rất quan trọng Xem xét các tình huống sau để hiểu rõ lý do:

- Nếu một nút là chủ động bị sự cố và có một nút thụ động sẵn sàng, các ứngdụng và dịch cụ đang chạy trên nút hỏng có thể lập tức chuyển sang nút thụ động

Vì máy chủ đóng vai trò là nút thụ động hiện tại chưa chạy ứng dụng hay dịch vụ gìnên nó có thể gánh toàn bộ công việc của máy chủ hỏng mà không ảnh hưởng tớicác ứng dụng dịch vụ cung cấp cho người dùng cuối (ngầm định là các máy chủtrong Cluster có cấu trúc giống hệt nhau)

- Nhưng nếu tất cả máy chủ trong Cluster là chủ động và có nút bị sự cố, cácứng dụng và dịch vụ chạy trên máy chủ hỏng sẽ phải chuyển sang cho một máy chủkhác cũng đóng vai trò chủ động Vì là chủ động nên bình thường máy cũng phảiđảm nhận các ứng dụng và dịch vụ chạy trên nó Do vậy để đảm bảo hệ thống hoạtđộng bình thường kể cả khi có sự cố máy chủ trong Cluster cần phải có cấu hình dư

đủ để có thể gánh thêm khối lượng công việc của máy chủ khác khi cần

Trong cấu trúc Cluster mà mỗi nút chủ động được dự phòng một nút thụđộng, các máy chủ cần có cấu hình cao sao cho với khối lương công việc trung bìnhchúng sử dụng hết khoảng 50% CPU và dung lượng bộ nhớ

Trong cấu trúc Cluster mà số nút chủ động nhiều hơn số nút thụ động, cácmáy chủ cần có cấu hình tài nguyên CPU và bộ nhớ mạnh hơn để có thể xử lý đượckhối lượng công việc cần thiết khi một nút nào đó bị hỏng

Trang 33

Các nút trong một Cluster thường là một bộ phận của cùng một vùng(domain) và có thể được cấu hình là máy điều khiển cùng (Domain Controllers) haymáy chủ thành viên Lý tưởng nhất là mỗi Cluster nhiều nút có ít nhất hai nút làmmáy điều khiển vùng và đảm nhận việc FailOver đối với các dich vụ vùng thiết yếu.Nếu không như vậy thì khả năng sẵn sàng trên Cluster bị phụ thuộc và khả năng sẵnsàng của máy điều khiển trong Domain.

1.1.1.2.3 Cluster nhiều địa điểm phân tán.

Với các hệ thống mạng lớn có các người dùng phân bố rải rác, hiệu quả củaviệc dự phòng chống sự cố và nâng cao của mạng sẽ được cải thiện hơn nhiều nếuxây dựng hệ thống Cluster bố trí nhiều địa điểm Kiến trúc nhiều địa điểm có thểđược thiết kế theo rất nhiều cách khác nhau, trong đó phổ biến nhất là có một điểmgốc và một số điểm xa

Với kiểu thiết kế đầy đủ, toàn bộ cấu trúc điểm gốc được xây dựng lại đầy đủ

ở các điểm xa Điều này cho phép các điểm xa hoạt động độc lập và có thể xử lýtoàn bộ khối lượng công việc của điểm gốc nếu cần Trong trường hợp này, việcthiểt kế phải đảm bảo sao cho cơ sở dữ liệu và các ứng dụng giữa các điểm gốc vàcác điểm ở xa phải đồng bộ và được cập nhật dữ liệu sao lặp ở chế độ thời gianthực

Với kiểu thiết kế thực từng phần thì chỉ có các thành phần cơ bản là được càiđặt ở các điểm ở xa nhằm: Xử lý các khối lượng công việc quá tải trong các giờ caođiểm, duy trì hoạt động ở mức cơ bản trong trường hợp điểm gốc site bị sự cố, cungcấp một số các dịch vụ hạn chế nếu cần

Cả kiểu thiết kế đầy đủ hay từng phần đều dùng phương cách phân tán cácmáy chủ rải rác về mặt địa lý Cluster phân tán về địa lý sử dụng mạng LAN ảo(Virtual LAN) để kết nối các mạng khu vực lưu trữ SAN (Storage Area Network)qua những khoảng cách lớn Để có thể duy trì hoạt động Cluster một cách hiệu quả,yêu cầu đối với kết nối trong mạng LAN ảo phải có độ trễ khoảng dưới 500ms

1.1.1.2.4 Tối ưu hóa các thiết bị lưu trữ trên Cluster

Các thiết bị trên Cluster cần được tối ưu hóa trên cơ sở những nhu cầu vềhiệu năng và mức độ sẵn sàng

Trang 34

1.1.1.2.5 Tính mở của Cluster

Một vấn đề mà các nhà đầu tư xây dựng hệ thống cần quan tâm là khả năng

mở rộng hệ thống Clustering Tuy theo yêu cầu cụ thể các Cluster có thể cần phải

mở thêm các máy chủ vào Cluster, hoặc thêm CPU và RAM cho các máy chủ đểtăng khả năng đảm nhận công việc cho các máy chủ đã có

Muốn mở rộng Cluster bằng cách thêm các Server thì cả hai yếu tố là Kỹthuật Clustering và Hệ điều hành mà server sử dụng điều quan trong

Muốn mở rộng Cluster bằng cách thêm các CPUs và RAM thì việc đangdùng hệ điều hành nào là vấn đề rất quan trọng Ví dụ Hệ điều hành Windown 2000Datacentrer Server hỗ trợ tối da 32 bộ xử lý và 64 GB RAM Như vậy, có thể phải

nâng cấp hệ điều hành từ Advanced lên Datacentrer Server nếu yêu cầu thêm CPU

và RAM vượt qua khả năng của hệ điều hành đang dùng

Hình 1.1.1.2.5: Sơ đồ nguyên lý của một Cluster lớn

Trang 35

- Mạng phục vụ cho việc quản lý hệ thống: thường là mạng được thiết lậpbới các chuyển mạch 10/100 Ethernet Cũng cần phải có cả máy chủ phục vụ đầucuối trong mạng này.

Clustering là một kỹ thuật được áp dụng nhằm nâng cao độ tin cậy và tínhsẵn sàng của hệ thống mạng máy tính Một mạng được cấu trúc dưới dạngClustering sẽ có khả năng hoạt động bình thường ngay cả khi có sự cố xảy ra chomột máy chủ mạng trong cluster Tùy theo yêu cầu cụ thể của hệ thống mà có thểcấu trúc cluster 2 nút, 4 nút, 8 nút hoặc nhiều hơn Các nút trong cluster có thể toàn

ở thể chủ động, hoặc có nút chủ động, có nút thụ động Mỗi cấu trúc của Cluster sẽđòi hỏi một cấu hình phần cứng của các máy chủ tương ứng Hệ điều hành cũng làmột yếu tố quan trọng cần xem xét khi thiết kế Clustering cho mạng

1.2 Bộ nhớ chia sẻ

1.2.1 Đa luồng (Pthread)

1.21.1 Tổng quan về đa luồng

Luồng là đơn vị cơ bản của sự sử dụng CPU, là dòng điều khiển trong mộttiến trình Nếu tiến trình luồng có nhiều luồng, nó có thể thực hiện nhiều tác vụ tạimột thời điểm

Luồng bao gồm: một định danh luồng hay mã luồng (Thread ID), một bộđếm chương trình (PC – Program Count), tập thanh ghi (register set) và ngăn xếp(Stack)

Các luồng trong một tiến trình chia sẻ với các luồng khác thuộc cùng mộtquá trình đoạn mã (code), đoạn dữ liệu (data), và tài nguyên hệ điều hành như cáctập tin đang mở và các tín hiệu Một quá trình truyền thống có một luồng điều khiểnđơn Nếu quá trình có nhiều luồng điều khiển, nó có thể thực hiện nhiều hơn một tác

vụ tại một thời điểm

Trang 36

Hình 1.2.1.1: Hiện thị sự khác giữa quá trình đơn luồng và quá trình đa luồngTrong những trường hợp cụ thể một ứng dụng đơn có thể được yêu cầu thựchiện nhiều tác vụ đơn Thí dụ, một chương trình phục vụ web chấp nhận các yêucầu khách hàng như trang web, hình ảnh, âm thanh, … Một tiến trình phục vụ web

có thể có nhiều khác hàng truy nhập đồng thời Nếu tiến trình phục vụ web chạynhư một tiến trình đơn luồng truyền thống thì nó chỉ có thể phục vụ một khách hàngtại cùng một thời điểm Lượng thời gian mà khách hàng phải chờ yêu cầu của nóđược phục vụ là rất lớn

Một giải pháp là có một trình phục vụ như một tiến trình đơn chấp nhận cácyêu cầu Khi trình phục vụ nhận một yêu cầu, nó sẽ tạo quá trình riêng để phục vụyêu cầu đó Phương pháp tạo ra quá trình này là cách sử dụng thông thường trướckhi luồng trở nên phổ biến Tạo ra quá trình có ảnh hưởng rất lớn Nếu một quátrình mới sẽ thực hiện cùng tác vụ như quá tình đã có thì tại sao lại gánh chịu tất cảchi phí đó? Thường sẽ hiệu quả hơn cho một tiến trình chứa nhiều luồng phục vụcùng mục đích Tiếp cận này sẽ đa luồng tiến trình phục vụ web Trình phục vụ sẽtạo một luồng riêng “lắng nghe” các yêu cầu người dùng, khi yêu cầu được thựchiện nó không tạo ra quá trình khác mà sẽ tọa ra một luồng khác phục vụ yêu cầu

Luồng đó đóng vai trò quan trọng trong hệ thống gọi thủ tục ánh xạ (RemoteProcess Call –RPC) RPCs cho phép giao tiếp quá trình bằng cách cung cấp cơ chếgiao tiếp tương tự như các lời gọi hàm hay thủ tục thông thường Điểm hình, cáctrình phục vụ RPCs là đa luồng Khi một trình phục vụ nhân thông điệp, nó phục vụthông điệp dùng một luồng riêng Điều này cho phép phụ vụ nhiều yêu cầu đồngthời

Trang 37

1.2.1.1.2 Các lợi ích của tiến trình đa luồng

Những lợi ích của lập trình đa luồng có thể được chia làm bốn loại:

- Sự đáp ứng: Đa luồng một ứng dụng giao tiếp cho phép chương trình tiếptục chạy thậm chí nếu một phần của nó bị khóa hay đang thực hiện một thao tác dài,

do đó gia tăng sự đáp ứng đối với người dùng Chẳng hạn, một tiến trình web vẫn

có thể đáp ứng người dùng bằng một luồng trong khi menu ngữ cảnh đang nạp bằngmột luồng khác

- Chia sẻ tài nguyên: Mặc định các luồng chia sẻ bộ nhớ và các tài nguyêncủa các quá trình mà chúng thuộc về Lợi ích của việc chia sẻ mã là nó cho phépmột ứng dụng có nhiều hoạt động của các luồng khác nhau nằm trong không gianđịa chỉ

- Kinh tế: Cấp phát bộ nhớ và các tài nguyên cho việc tạo quá trình là rất đắt

Vì các luồng chia sẻ tài nguyên của quá trình mà chúng thuộc về nên nó kinh tế hơn

để tạo và chuyển ngữ cảnh giữa các luồng Khó để đánh giá chính xác theo kinhnghiệm sự khác biệt chi phí cho việc tạo và duy trì một quá trình hay một luồng,nhưng thường nó mất nhiều thời gian để tạo và quản lý một quá trình đơn hơn mộtluồng Trong hệ điều hành Solaris 2, tạo một quá trình chậm hơn 30 lần tạo mộtluồng và chuyển ngữ cảnh chậm hơn 5 lần

- Thực hiện kiến trúc đa xử lý (Multiprocessor): Các lợi thế của đa luồng cóthể phát huy trong kiến trúc đa xử lý, vì các luồng có thể chạy song song trên các bộ

xử lý, và ở đó mỗi luồng thực thi song song trên một bộ xử lý khác nhau Một quátrình đơn luồng chỉ có thể chạy trên một CPU Đa luồng trên một máy nhiều CPUgia tăng tính đồng thời Trong kiến trúc đơn xử lý, CPU thường chuyển đổi qua lạigiữa mỗi luồng quá nhanh để tạo ra hình ảnh của sự song song nhưng trong thực tếchỉ có một luồng đang chạy tại một thời điểm

1.2.1.1.3 Luồng người dùng và luồng nhân

Chúng ta xem xét luồng như một chiều hướng chung Tuy nhiên, hỗ trợluồng được cung cấp hoặc ở cấp người dùng cho các luồng người dùng hoặc ở cấpnhân cho các luồng nhân

- Luồng người dùng (User threads): Được hỗ trợ dưới dạng nhân và được càiđặt bởi thư viện luồng tại cấp người dùng (User level) Thư viện cung cấp hỗ trợ

Trang 38

cho việc tạo luồng, lập thời biểu, và quản lý mà không có sự hỗ trợ nhân Vì nhânkhông biết các luồng cấp người dùng, tất cả việc tạo luồng và lập thời biểu đượcthực hiện trong không gian người dùng mà không cần can thiệp của nhân Do đó cácluồng cấp người dùng thường tạo ra và quản lý nhanh, tuy nhiên chúng cũng cónhững trở ngại như khi nhân là đơn luồng, nếu có 1 luồng người sử dụng thực hiệnmột lời gọi hệ thống khóa nó sẽ gây cho toàn bộ tiến trình khóa bị khóa, mặc dù cáctiến trình khác vẫn có thể chạy trong ứng dụng Các thư viện luồng người dùng gồmcác luồng POSIX Pthread, Win32 threads, Java Threads, Mach C-Thread và Solaris

2 UI- Thread

- Luồng nhân (Kernel threads): Được hỗ trợ trực tiếp bởi hệ điều hành Nhânthực hiện tạo luồng, lập thời biểu, và quản lý không gian nhân Vì quản lý luồngđược thực hiện bởi hệ điều hành, luồng nhân thường tạo và quản lý chậm hơn so vớiluồng thực hiện lời gọi hệ thống nghẽn, nhân có thể lập thời biểu một luồng kháctrong ứng dụng thực thi Trong môi trường đa xử lý, nhân có thể lập thời biểu luồngtrên một bộ xử lý khác Hầu hết các hệ điều hành hiện nay như Windows Server,Solaris 2, BeOS và Tru64 UNIX, LINUX, Mac OS X, Windows NT/2000/XP hỗtrợ các luồng nhân

1.2.1.4 Các mô hình đa luồng

Để chạy trên CPU, các luồng người dùng cuối cùng phải được ánh xạ vàomột luồng nhân Nhiều hệ điều hành cung cấp hỗ trợ cả 2 luồng nhân và người dùngnên tạo ra nhiều mô hình đa luồng khác nhau Chúng ta xem xét ba loại cài đặtluồng thông thường

a Mô hình nhiều - một (Many to One)

Mô hình nhiều – một ánh xạ nhiều luồng cấp người dùng tới một luồng cấpnhân Quản lý luồng được thực hiện trong không gian người dùng vì thế nó hiệu quảnhưng toàn bộ quá trình sẽ bị khóa nếu một luồng thực hiện lời gọi hệ thống khóa

Vì chỉ một luồng có thể truy xuất nhân tại một thời điểm nên nhiều luồng không thểchạy song song trên nhiều bộ xử lý Ví dụ: Solaris Green Threads, GNU Protablethreads

Trang 39

Hình 1.2.1.4.1: Mô hình Nhiều- Một

b Mô hình một – một (One to One)

Mô hình một – một ánh xạ mỗi luồng người dùng tới một luồng nhân Nócũng cấp khả năng đồng thời tốt hơn mô hình nhiều – một bằng cách cho một luồngkhác chạy khi một luồng thực hiện lời gọi hệ thống nghẽn Nó cũng cho phép nhiềuluồng chạy song song trên các bộ xử lý khác nhau Chỉ có một trở ngại trong môhình này là tạo luồng người dùng yêu cầu tạo một nhân tương ứng nên cần giới hạn

số luồng được hỗ trợ bởi hệ điều hành Ví dụ: Windows NT/2000/XP, Linux,Solaris 9 trở đi

Hình 1.2.1.4.2: Mô hình một – một

c Mô hình nhiều- nhiều (Many to Many)

Mô hình nhiều-nhiều đa hợp nhiều luồng cấp người dùng tới số lượng nhỏhơn hay bằng các luồng nhân Số lượng các luồng nhân có thể xác định hoặc mộtứng dụng cụ thể hay một máy cụ thể (một ứng dụng có thể được xác định nhiềuluồng nhân trên một bộ xử lý hơn trên một đơn xử lý) Trong khi mô hình nhiều –một cho phép người phát triển tạo ra nhiều luồng người dùng như họ muốn, thìđồng thời thật sự không đạt được vì nhân có thể lập thời biểu chỉ một luồng tại mộtthời điểm Mô hình một-một cho phép đồng thời tốt hơn nhưng người phát triểnphải cẩn thận không tạo ra quá trình nhiều luồng trong một ứng dụng Mô hìnhnhiều-nhiều gặp phải một trong hai vấn đề khiếm khuyết: người phát triển có thể tạo

Trang 40

nhiều luồng người dùng khi cần thiết và các luồng nhân tương ứng có thể chạy songsong trên một bộ đa xử lý Khi một luồng cực thực hiện lời gọi hệ thống khóa, nhân

có thể lập thời biểu một luồng khác thực thi Ví du: Solaris trước phiên bản 9,Windows 2000/XP với gói ThreadFiber

Hình 1.2.1.4.3: Mô hình nhiều-nhiều

d Mô hình 2 mức

Tương tự như Many to Many, chỉ khác là cho phép một luồng người dùng được giới hạn bởi một luồng nhân Ví dụ: IRIX, HP-UX, Tru64 UNIX, Solaris 8 trởđi

Hình 1.2.1.4.4: Mô hình 2 mức

1.2.1.5 Cấp phát luồng

a Lời gọi hệ thống Fork và Exec

Trong một chương trình đa luồng, ngữ nghĩa của các lời gọi hệ thống Fork vàExec thay đổi Nếu một luồng trong lời gọi chương trình Fork thi quá trình mới saochép lại quá trình tất cả luồng hay là một quá trình đơn luồng mới Lời gọi hệ thốngExec điển hình thực hiện công việc Nghĩa là, nếu một luồng nạp lời gọi hệ thốngExec, chương trình được xác định trong tham số Exec sẽ thay thế toàn bộ quá trình– chứa tất cả luồng và các quá trình tải nhẹ

Ngày đăng: 28/08/2021, 23:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. GS Đoàn Văn Ất (2006), Kỹ thuật lập trình C cơ sở và nâng cao, nhà xuất bản giao thông vận tải Sách, tạp chí
Tiêu đề: Kỹ thuật lập trình C cơ sở và nâng cao
Tác giả: GS Đoàn Văn Ất
Nhà XB: nhà xuất bảngiao thông vận tải
Năm: 2006
[2]. PGT.TS Đoàn Văn Ban (2005), Xử lý song song và phân tán, Nhà xuất bản Khoa học Kỹ thuật.Tiếng anh Sách, tạp chí
Tiêu đề: Xử lý song song và phân tán
Tác giả: PGT.TS Đoàn Văn Ban
Nhà XB: Nhà xuất bảnKhoa học Kỹ thuật.Tiếng anh
Năm: 2005
[3]. Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar (2003), Introduction to Parallel Computing, Second Edition, Addison Wesley Sách, tạp chí
Tiêu đề: Introduction to Parallel Computing
Tác giả: Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar
Năm: 2003
[4]. Michael J. Quinn (2003), Parallel Programming in C with MPI and OpenMP, McGraw-Hill, United States Sách, tạp chí
Tiêu đề: Parallel Programming in C with MPI and OpenMP
Tác giả: Michael J. Quinn
Năm: 2003
[6]. MIT Press (Oct 2007), Using OpenMP Portable Shared Memory Parallel ProgrammingCác website Sách, tạp chí
Tiêu đề: Using OpenMP Portable Shared Memory ParallelProgramming
[5]. Addison Wesley, AnIntroduction to Parallel Computing Khác
[7]. Http://www.openmp.org [8]. Http://www.gridbus.org Khác

HÌNH ẢNH LIÊN QUAN

1.21.1. Tổng quan về đa luồng ................................................................................................................................ - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
1.21.1. Tổng quan về đa luồng (Trang 4)
Hình 1.1.1.3.1: Website của dự án BIOGRID - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 1.1.1.3.1 Website của dự án BIOGRID (Trang 17)
Hình 1.1.1.3.2: Website của dự án DOE Science Grid - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 1.1.1.3.2 Website của dự án DOE Science Grid (Trang 18)
Hình 1.1.1.3.3: Tính toán lưới - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 1.1.1.3.3 Tính toán lưới (Trang 19)
- Mô hình lưới – Gri d: Là cơ chế cho phép xác thực và truyền thông an toàn trên mạng máy tính. - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
h ình lưới – Gri d: Là cơ chế cho phép xác thực và truyền thông an toàn trên mạng máy tính (Trang 24)
Hình 1.1.1.4.1: Mô hình lưới – Grid - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 1.1.1.4.1 Mô hình lưới – Grid (Trang 24)
Hình 1.1.1.6.1: Sơ đồ hệ thống Grid của phân viện CNTT tại TPHCM - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 1.1.1.6.1 Sơ đồ hệ thống Grid của phân viện CNTT tại TPHCM (Trang 29)
Hình 1.1.2.2.1: Nguyên lý hoạt động của một Cluster - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 1.1.2.2.1 Nguyên lý hoạt động của một Cluster (Trang 32)
Hình 1.1.1.2.5: Sơ đồ nguyên lý của một Cluster lớn Có ba mạng chức năng cần phải có: - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 1.1.1.2.5 Sơ đồ nguyên lý của một Cluster lớn Có ba mạng chức năng cần phải có: (Trang 34)
Hình 2.3.1.3: Phân hoạch bài toán nhân ma trận theo ma trận trung gia n3 chiều - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 2.3.1.3 Phân hoạch bài toán nhân ma trận theo ma trận trung gia n3 chiều (Trang 50)
Hình 2.3.1.4: Mô tả các bước phát sinh trong phân hoạch thăm dò - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 2.3.1.4 Mô tả các bước phát sinh trong phân hoạch thăm dò (Trang 52)
Hình 2.3.1.5: Phân hoạch lai để tìm giá trị nhỏ nhất của mảng - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 2.3.1.5 Phân hoạch lai để tìm giá trị nhỏ nhất của mảng (Trang 54)
Hình 2.3.2.1: (a) Phân chia theo 1 chiều và (b) phân chia theo hai chiều - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 2.3.2.1 (a) Phân chia theo 1 chiều và (b) phân chia theo hai chiều (Trang 56)
Hình 3.3.2: Mô tả cấu trúc thực hiện khối mã xử lý luồng song song - OpenMP sử dụng mô hình Fork-Join (nhánh - nhập) thực hiện song song: - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 3.3.2 Mô tả cấu trúc thực hiện khối mã xử lý luồng song song - OpenMP sử dụng mô hình Fork-Join (nhánh - nhập) thực hiện song song: (Trang 65)
Hình 3.3.4: Mô hình thể hiện tiến trình song song lồng nhau - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 3.3.4 Mô hình thể hiện tiến trình song song lồng nhau (Trang 66)
3.4.4.1. Chỉ dẫn cấu trúc chia sẻ công việc Do/for - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
3.4.4.1. Chỉ dẫn cấu trúc chia sẻ công việc Do/for (Trang 72)
Hình 26. Cấu trúc chia sẻ công việc  Hạn chế: - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 26. Cấu trúc chia sẻ công việc Hạn chế: (Trang 72)
Hình 3.4.4.1: Mô tả STATIC, DYNAMIC, GUIDED  Sự hạn chế: - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 3.4.4.1 Mô tả STATIC, DYNAMIC, GUIDED Sự hạn chế: (Trang 73)
Hình 3.4.10. Tổng thể các chỉ dẫn - Chỉ dẫn dưới đây OpenMP không chấp nhận mệnh đề: - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 3.4.10. Tổng thể các chỉ dẫn - Chỉ dẫn dưới đây OpenMP không chấp nhận mệnh đề: (Trang 91)
Bảng dưới đây thể hiện tổng quan mệnh đề được công nhận bởi chỉ dẫn OpenMP - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Bảng d ưới đây thể hiện tổng quan mệnh đề được công nhận bởi chỉ dẫn OpenMP (Trang 91)
Hình 3.8.1: Hình mô tả cấu trúc tổng qua của OpenMP - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 3.8.1 Hình mô tả cấu trúc tổng qua của OpenMP (Trang 102)
- Bảng kết quả thời gian chạy chương trình - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Bảng k ết quả thời gian chạy chương trình (Trang 104)
Hình 2.1: Mô tả nhân ma trận theo khối song song (a)-4 khối ánh xạ vào 4 tiến trình, (b)-Thực hiện bước 2,  - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 2.1 Mô tả nhân ma trận theo khối song song (a)-4 khối ánh xạ vào 4 tiến trình, (b)-Thực hiện bước 2, (Trang 106)
Phân thành các khối dữ liệu được lấy theo hàng và cột. Hình dưới thể hiện cùng màu thuộc cùng khối - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
h ân thành các khối dữ liệu được lấy theo hàng và cột. Hình dưới thể hiện cùng màu thuộc cùng khối (Trang 107)
Hình 4.2.2.6: Bảng kết quả đồ thị nhân ma trận - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 4.2.2.6 Bảng kết quả đồ thị nhân ma trận (Trang 109)
Hình 4.3.3.1 :Phân khối dữ liệu bằng nhau cho mỗi tiến trình - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 4.3.3.1 Phân khối dữ liệu bằng nhau cho mỗi tiến trình (Trang 111)
Hình 4.3.3.5: Trong 2 nửa tiếp tục chọn đỉnh ngẫu nhiên - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Hình 4.3.3.5 Trong 2 nửa tiếp tục chọn đỉnh ngẫu nhiên (Trang 112)
- Bảng kết quả - Nghiên cứu mô hình tính toán song song sử dụng bộ nhớ chia sẻ và ứng dụng một số thuật toán trên ma trận
Bảng k ết quả (Trang 114)

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w