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

Kỹ thuật tính toán song song trong một số ứng dụng cơ học

87 19 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 87
Dung lượng 1,16 MB

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

Nội dung

Kỹ thuật tính toán song song trong một số ứng dụng cơ học Kỹ thuật tính toán song song trong một số ứng dụng cơ học Kỹ thuật tính toán song song trong một số ứng dụng cơ học luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

Trang 2

DANH MỤC HÌNH

28TUHình 1.1.1: Luật Moore về tốc độ của bộ xử lýU28T _ 7

28TUHình 1.1.2: Hiệu năng tính toán của các cấp độ trung tâm tính toán song songU28 T

_ 9

28TUHình 3.1: Mô hình máy tính cá nhân gồm một bộ xử lý và một bộ nhớU28T _ 15

28TUHình 3.2: Mô hình máy tính song song bộ nhớ chia sẻU28T 16

28TUHình 3.3: Sơ đồ đơn giản kiến trúc máy tính lõi đôi của PentiumU28 T 16

28TUHình 3.4: Sơ đồ kiến trúc máy tính lõi tứ của PentiumU28 T 17

28TUHình 3.5: Mô hình máy tính song song bộ nhớ phân tánU28 T _ 18

28TUHình 3.6: Hệ thống mạng kết nối từng cặp máy tính với nhauU 28T 19

28TUHình 3.7: Hệ thống mạng dạng lưới hai chiềuU28 T _ 20

28TUHình 3.8: Hệ thống mạng siêu lập phương ba chiềuU28 T 21

28TUHình 3.9: Phân rã theo miền cho bài toán trong không gian ba chiều.U28 T _ 21

28TUHình 3.10: Hệ thống mạng siêu lập phương bốn chiềuU28 T 22

28TUHình 3.11: Hệ thống mạng máy trạmU28 T 23

28TUHình 3.12: Hệ thống máy tính BeowulfU28 T 23

28TUHình 3.13: Số lượng cố định các tiến trình độc lập trongU28T _ 24

28TUHình 3.14: Lượng tiến trình động, độc lập trên nền PVMU28 T 25

28TUHình 3.15: Mô hình thực hiện của các tiến trình thu được trên nền PVMU28T 25

28TUHình 3.16: Đồng bộ hóa các tiến trình theo thuật giải butterfly sử dụng hàm barrierU2 8T _ 26

28TUHình 3.17: Tính tổng của 16 số hạng sử dụng giải thuật butterflyU28 T 27Hình 3.18: Tính tích phân số bằng tổng diện tích các hình thang 28

Trang 3

28TUHình 3.19: Tính số pi theo công thức tổng diện tích hình thangU28 T _ 28

28TUHình 3.20: Kỹ thuật tính toán song song pipelineU28T 29

28TUHình 3.21: Mô hình hóa bài toán giải phương trình truyền nhiệt hai chiềuU28T _ 30

28TUHình 3.22: Mô hình tính toán hệ số tăng tốcU28T 31

28TUHình 4.1: Cấu trúc cơ bản của một chương trình sử dụng giao thức MPIU28 T 34

28TUHình 4.2: Các tập hợp truyền thông trong MPIU28T 35

28TUHình 4.3: Chi tiết mô hình truyền thông điểm tới điểmU2 8T 37

28TUHình 4.4: Mô hình quảng bá truyền thôngU28T 39

28TUHình 4.5: Mô hình tổng hợp truyền thôngU28 T 40

28TUHình 4.6: Mô hình tập hợp dữ liệu truyền thôngU28T _ 41

28TUHình 4.7: Mô hình tích hợp quảng bá và tổng hợp truyền thôngU28 T _ 42

28TUHình 4.8: Mô hình phân tán dữ liệu truyền thôngU28 T 43

28TUHình 4.9: Tổng kết một số mô hình gói truyền thôngU28T _ 44

28TUHình 5.1: Các thư viện tính toán song song thông dụngU28T _ 50

28TUHình 5.2: Phân tán thành các tiến trình độc lậpU28 T 52

28TUHình 5.3: Song song hóa Matlab với giao thức truyền thông điệp MPIU28 T 54

28TUHình 5.4: Tính toán hiệu năng cao qua dịch vụ sử dụng các siêu máy tínhU28 T _ 56

28TUHình 5.5: Mô hình biên dịch mã Matlab thành mã thư viện tính toán song

28TUHình 5.6: Lượng băng thông của hệ thống song song sử dụng MatlabU28 T 61

28TUHình 5.7: Hiệu quả tăng tốc của MatlabMPI khi so với thuật giải tuần tự tốtU28 T

62

28TUHình 5.8: So sánh chi phí lập trình với hiệu quả tính toán của các công cụ lập trình song songU28T 63

28TUHình 6.1: Rời rạc hóa miền khảo sát để giải phương trình vi phânU28T _ 67

28TUHình 6.2: Sơ đồ tính toán tuần tự giải thuật lặp đơnU28T 72Hình 6.3: Sơ lược về các bước thiết kế giải thuật song song 73

Trang 4

28TUHình 6.4: Phân rã tối đa, mỗi tiến trình xử lý một nútU28T _ 74

28TUHình 6.5: Truyền thông giữa các tiến trình láng giềngU28T _ 75

28TUHình 6.6: Tích tụ bài toán vào p tiến trình, mỗi tiến trình xử lý m nútU28 T 76

28TUHình 6.8: Kết quả tính toán số tại một vài bước lặp của mô hình tính toán song songU28 T 78

28TUHình 6.9: Giao diện chương trình điều khiển tiến trìnhU28 T 79

28TUHình 6.10: Nhập vào tệp cần thực hiệnU28T 80

28TUHình 6.11: Nhập cấu hình máy phân tánU28T _ 80

28TUHình 6.12: Nhập cấu hình một máyU28 T _ 80

28TUHình 6.13: Danh sách các máy đã được khởi tạoU28 T _ 81

28TUHình 6.14: Kết quả sau khi tính toánU28T 81

28TUHình 6.15: Lỗi khi không nhập tệp cần thực hiệnU28 T 82

28TUHình 6.16: Lỗi khi không nhập vào cấu hình máy tính song songU28 T 82

Trang 5

DANH MỤC BẢNG

28TUBảng 3.1: Một số hệ thống siêu máy tính giá rẻ hiện đang được sử dụngU28 T 23

28TUBảng 4.1: Các kiểu dữ liệu điển hình trong giao thức MPIU28 T _ 35

28TUBảng 4.2: Kiểu dữ liệu tương ứng với các tham số truyền vào các hàm MPIU28 T

36

28TUBảng 4.3: Các mô hình gửi thông điệp MPI hỗ trợU28 T _ 38

28TUBảng 4.4: Các thao tác tổng hợp dữ liệu hàm MPI_Reduce có thể thực hiện đượcU28T 40

28TUBảng 5.1: Bảng các câu lệnh được cung cấp với mpdU28 T _ 47

28TUBảng 5.2: Bảng các lựa chọn được cung cấp với smpdU28 T 47

28TUBảng 5.3: Các lựa chọn với câu lệnh mpiexecU28T _ 48

28TUBảng 5.4: Bảng các phần mềm hỗ trợ phân tán các tiến trình độc lập trên MatlabU28 T 53

28TUBảng 5.5: Bảng các phần mềm hỗ trợ truyền thông điệp trên MatlabU28T _ 55

28TUBảng 5.6: Bảng các dịch vụ hỗ trợ tính toán song song trên MatlabU28T 57

28TUBảng 5.7: Bảng các phần mềm giúp dịch và ứng dụng các chương trình song song mã MatlabU28 T _ 59

Trang 6

Mở đầu

Khoảng hai năm trở lại đây, chúng ta bắt đầu nghe nhiều đến bộ xử lý lõi kép của Intel Bộ xử lý này chính làm một trong những kiến trúc máy tính song song đang được thương mại hoá bởi cả Intel và AMD, hai nhà sản xuất chíp lớn Điều đó vẫn chưa cho ta thấy rõ rằng đã có các siêu máy tính tích hợp đến hơn mười ngàn bộ xử lý do các công ty khổng lồ như IBM hay HP thiết

kế để thực hiện các dự án trọng điểm quốc gia Hiệu ứng nghiên cứu tính toán song song lan rất rộng khi xuất hiện các mô hình tính toán song song sử dụng mạng máy tính kết nối hàng ngàn bộ xử lý đơn để giải quyết một bài toán Các bài toán cơ học hiện đại thực hiện ngày càng nhiều trên máy tính Phương pháp phần tử hữu hạn, phương pháp số hay phương pháp phần tử biên ngày càng tăng nhu cầu tính toán khi giải quyết các bài toán cỡ lớn (số phần tử lớn) hay các bài toán phi tuyến Nhu cầu tất yếu là tìm một phương pháp tính toán có hiệu năng cao hơn để giải quyết các bài toán này

Luận văn trình bày về các kỹ thuật tính toán song song và cách thức sử dụng kỹ thuật này giải các bài toán cơ học sau đó đưa vào các kiến trúc máy tính song song chi phí thấp để thực hiện

Luận văn gồm gồm sáu chương, trình bày và đánh giá sự phát triển của

kỹ thuật tính toán song song cũng như nhu cầu ngày càng lớn của việc ứng dụng tính toán song song vào các bài toán kỹ thuật nói chung và các bài toán

cơ học nói riêng Ngoài ra luận văn mô tả chi tiết và khá đầy đủ về các kỹ thuật tính toán song song hiện tại từ đơn giản đến phức tạp hơn Ngoài việc xây dựng một thư viện các mô đun ma trận sử dụng giải thuật tính toán song song, luận văn còn giải quyết một bài toán cơ học cụ thể, bài toán này có thể

áp dụng vào thực tiễn ngay hay phát triển thêm để tận dụng triệt để hơn các

Trang 7

lợi thế của tính toán song song hay tận dụng được cơ sở hạ tầng công nghệ thông tin hiện có Luân văn cũng có mục đích phát triển tính toán song song theo một hướng mới là sử dụng Matlab được song song hoá để giải quyết các bài toán kỹ thuật

Chương một trình bày sơ lược về nhu cầu tính toán song song trên thế giới hiện nay, qua đó mô tả sự cần thiết áp dụng các kỹ thuật tính toán song song vào các bài toán thực tế là rất cấp thiết

Chương hai trình bày một bài toán dao động cơ bản, phân tích phương pháp ma trận dạng riêng quen thuộc để tìm các yếu tố có khả năng phân rã, qua đó tìm được phương pháp áp dụng tính toán song song vào bài toán trên

Để hiểu được các khái niệm cũng như sử dụng được các kỹ thuật sẵn có, chương ba, chương bốn, chương năm lần lượt trình bày các kiến trúc, mô hình lập trình và các tài nguyên tính toán song song sẵn có Phần này chủ yếu trình bày các thông tin để có thể lập trình tính toán song song theo tiêu chuẩn hiện hành và các trào lưu mới nhất hiện có Luận văn mô phỏng phần này bằng một số ví dụ như tính tích phân số, nhân ma trận với một véc tơ, nhân hai ma trận và giải phương trình truyền nhiệt hai chiều

Chương sáu trình bày cụ thể cách giải quyết bài toán đã nêu ra trong chương một Các bước từ chọn cấu hình phần cứng, thiết kế và cài đặt chương trình được trình bày rất kỹ Chương này tổng hợp và sử dụng các lý thuyết và tài nguyên của năm chương trước Ngoài ra chương sáu cũng trình bày một bảng điều khiển được lập trình để chạy các ứng dụng trong toàn bộ luận văn

Trang 8

CHƯƠNG 1

NHU CẦU TÍNH TOÁN SONG SONG TRONG KHOA HỌC TÍNH TOÁN

VÀ CƠ HỌC

1.1 Định luật Moore về sự phát triển tốc độ của bộ xử lý

Ngay từ những ngày đầu trong quá trình phát triển của máy tính điện tử, năm

1965, Gordon Moore đã đưa ra định luật nêu rằng tốc độ xử lý của máy tính

sẽ tăng lên gấp đôi sau mỗi một năm Đây chính là luật Moore nổi tiếng

Hình 1.1.1 : Luật Moore về tốc độ của bộ xử lý

Ban đầu máy tính điện tử tỏ ra khá mạnh khi giải quyết các bài toán kỹ thuật đương thời, tuy nhiên nhu cầu tính toán đã phát triển nhanh hơn tốc độ

Trang 9

phát triển của vi xử lý theo định luật Moore Gần như ngay sau đó các ý tưởng

về tính toán song song đã xuất hiện, tuy nhiên phải đến thập niên 90 thì các ứng dụng tính toán song song mới tỏ ra hiệu quả trên các siêu máy tính đắt tiền của các hãng máy tính nổi tiếng như IBM hay HP Đến thời điểm hiện nay số lượng đèn điện tử tích hợp trong một chíp điện tử gần như bão hoà (kích thước chíp điện tử đã đạt đến 60 nanomet và có khả năng khó phát triển thêm thì các nhà cung cấp chíp bắt đầu xu hướng tích hợp nhiều lõi trong một

bộ xử lý như bộ xử lý Intel dual core hay AMD dual core Rõ ràng ta thấy xu hướng áp dụng tính toán song song là xu hướng khó đảo ngược

Trong phương pháp số các bài toán yêu cầu lượng tính toán lớn như giải

hệ phương trình đại số tuyến tính cỡ lớn, giải hệ phương trình đại số phi tuyến, giải phương trình vi phân tuyến tính và phi tuyến cũng rất cần ứng dụng tính toán song song

Trang 10

Các bài toán về phương pháp phần tử hữu hạn hay phần tử biên cũng đòi hỏi lượng lớn tính toán khi số phần tử trong bài toán lớn, làm cho số ẩn cần giải quyết tăng theo

Trên đây chỉ là những ứng dụng có thể áp dụng tính toán song song theo tầm hiểu biết của tác giả, còn rất nhiều ứng dụng khác nữa như trong công nghệ nano, hoá học, y tế, năng lượng, quân sự đều đòi hỏi kỹ thuật tính toán hiệu năng cao Bằng chứng là sự phát triển của các siêu máy tính của các cơ quan quốc phòng của Mỹ là rất mạnh mẽ Sau đây là mô hình phát triển tính toán song song tại Mỹ

Trung tâm nghiên cứu

quốc gia Viện nghiên cứu lớn

Bộ phận nhóm nghiên cứu

Hình 1.1.2: Hiệu năng tính toán của các cấp độ trung tâm tính toán song song

4

Pflops

Trang 12

Để cho phương trình đại số tuyến tính thuần nhất (2.4) có nghiệm không tầm thường, điều kiện cần là

Các nghiệm ωR k R (k = 1, …, n) của phương trình đặc trưng (2.5) được gọi là các tần số riêng

Thế n giá trị ωR k R (k = 1, …, n) lần lượt vào (2.5) ta thu được n phương trình

đại số tuyến tính thuần nhất n nghiệm aR k R(k = 1, …, n) của n hệ phương trình

tuyến tính này sai khác nhau một hằng số nhân Gọi n nghiệm aR k R(k = 1, …, n)

vừa tìm được là n véc tơ vR k R(k = 1, …, n)

Ma trận V được gọi là ma trận dạng riêng của hệ dao động Ý nghĩa của V

đơn giản là cho ta biết tất cả các dạng dao động riêng có thể của hệ dao động

2.1.2 Tính chất trực giao của các véc tơ riêng

Nếu phương trình dao động tự do không cản của hệ n bậc tự do (2.2) có các

ma trận khối lượng M và ma trận độ cứng C là các ma trận thực đối xứng thì các véc tơ riêng vR k R tương ứng với các tần số riêng ωR k R sẽ trực giao với ma trận

khối lượng M và ma trận độ cứng C

Trang 13

j i T

- p được gọi là véc tơ các tọa độ chính của hệ (2.1)

Áp dụng phép biến đổi tọa độ (2.9) vào hệ (2.1) ta thu được hệ sau

Trang 14

Trong đó B là ma trận cản của cơ hệ

Trong một số bài toán thực tế ma trận cản B thường được biểu diễn dưới dạng

ma trận cản Rayleigh

Trong đó α và δ là các hằng số, ma trận (2.17) được gọi là ma trận cản

Rayleigh Khi đó các véc tơ riêng vR k R tương ứng với các tần số riêng ωR k R cũng

Trang 16

CHƯƠNG 3

SƠ LƯỢC VỀ TÍNH TOÁN SONG SONG

3.1 Các khái niệm cơ bản

3.1.1 Kiến trúc máy tính song song

a) Máy tính cá nhân

Các máy tính cá nhân thông dụng thường có cấu trúc gồm hai bộ phận chính

bộ xử lý và bộ nhớ Bộ xử lý sẽ nhận các chỉ thị lệnh, các dữ liệu từ bộ nhớ, sau khi tính toán thì lại lưu lại bộ nhớ

Bộ nhớ

Bộ xử lý

Dữ liệuDòng lệnh

Hình 3.1 : Mô hình máy tính cá nhân gồm một bộ xử lý và một bộ nhớ

Bộ nhớ của máy tính sử dụng một không gian địa chỉ Một không gian địa chỉ lưu trữ được 2P

Trang 17

b) Hai kiểu máy tính song song cơ bản

 Máy tính đa xử lý bộ nhớ chia sẻ

Các bộ nhớ thành phần

Các bộ xử lý thành phần

Một không gian địa chỉ

Hệ thống mạng

Hình 3.2 : Mô hình máy tính song song bộ nhớ chia sẻ

Máy tính đa xử lý chia sẻ bộ nhớ mô phỏng theo kiến trúc của máy tính

cá nhân bình thường Các thành phần bộ nhớ tách rời nhau nhưng sử dụng chỉ một không gian địa chỉ Bất kỳ bộ xử lý nào cũng có thể truy cập vào bất kỳ phần nào của bộ nhớ Chính vì vậy ta gọi là máy tính chia sẻ bộ nhớ

Máy tính lõi đôi và lõi tứ của Pentium là loại máy tính đặc trưng cho loại hình máy tính song song này

Các bộ xử lý thành phần Các bộ nhớ thành phần

Hình 3.3: Sơ đồ đơn giản kiến trúc máy tính lõi đôi của Pentium

Trang 18

Vào ra

bus vào raChia sẻ bộ nhớ

Ghép bus

Bộ xử lýCache L1Cache L2

Ghép bus

Bộ xử lýCache L1Cache L2

Ghép bus

Bộ xử lýCache L1Cache L2

Hình 3.4: Sơ đồ kiến trúc máy tính lõi tứ của Pentium

Máy tính lõi đôi (dual core) đã được sử dụng rộng rãi trong tính toán 32 bít và 64 bít, máy tính lõi tứ (quad core) cũng sẽ được phổ cập chỉ trong một hai năm nữa Sử dụng các môi trường lập trình song song trên nền các hệ thống này đạt kết quả khá tốt Đây là mô hình đơn giản, chi phí thấp và đang

có xu hướng phát triển mạnh

Máy tính lõi đơn và máy tính lõi tứ là các loại máy tính chia sẻ bộ nhớ phổ dụng mà ta có thể tiếp xúc Trên thực tế có rất nhiều loại máy tính chia sẻ

bộ nhớ với lượng bộ xử lý tích hợp và lượng bộ nhớ lớn, các máy tính chia sẻ

bộ nhớ có ưu điểm nổi bật là có sẵn hệ thống điều khiển phần cứng do nhà sản xuất cung cấp và tốc độ truyền thông của hệ thống máy này là lớn do sử dụng các bus địa chỉ để truyền thông chứ không sử các giao thức mạng thông thường

Trang 19

 Máy tính đa xử lý bộ nhớ phân tán

Hình 3.5: Mô hình máy tính song song bộ nhớ phân tán

Máy tính đa xử lý với bộ nhớ phân tán là loại máy tính song song rất phổ biến, loại siêu máy tính này có giá thành rẻ hơn rất nhiều so với máy tính chia

sẻ bộ nhớ có cùng số lượng bộ xử lý vào bộ nhớ Do đó loại máy tính phân tán được sử dụng rất mạnh để nghiên cứu tính toán song song Ngoài ra hiệu năng của chúng cũng rất cao trong những máy tính có mạng truyền thông tốc

độ cao Loại máy tính này còn có ưu điểm là có thể nâng cấp các đời bộ xử lý mới một cách đơn giản với số lượng ít sự biến đổi hệ thống

Do tính linh hoạt và đa dạng của loại hình siêu máy tính này mà người sử dụng phải tự xây dựng hệ thống quản lý phần cứng và các tiến trình giải quyết trên các phần cứng đó

Có nhiều hệ thống giúp ta phần nào công việc quản lý tiến trình trên hệ thống máy này như PVM tuy nhiên không thể quản lý hết do đó người sử dụng phải thâm nhập vào các hệ thống mã nguồn mở này để thay đổi nhằm khai thác hiệu quả cấu hình hệ thống máy tính hiện có

Trang 20

3.1.2 Kiến trúc mạng tĩnh

Các máy tính trong một hệ thống xử lý song song được kết nối với nhau bằng các đường dẫn trực tiếp từ máy này sang máy khác theo các cấu trúc khác nhau

Hệ thống mạng liên kết các máy tính

Máy tính

Hình 3.6: Hệ thống mạng kết nối từng cặp máy tính với nhau

Các liên kết này được phân bổ theo một mô hình cho trước nhằm sử dụng hiệu quả được các thuật giải truyền thông qua đó giảm bớt thời gian truyền thông và giảm chi phí xây dựng hệ thống khi tiết kiệm được dây dẫn cũng như diện tích của chúng

Sau đây chúng ta sẽ tìm hiểu một vài hệ thống mạng thông dụng trong các hệ thống phân tán

Trang 21

- Hệ thống mạng dạng lưới hai chiều

Bộ xử lý

Hình 3.7: Hệ thống mạng dạng lưới hai chiều

Mỗi một máy tính (hay bộ xử lý) được nối với nhau theo mô hình một mảng hai chiều Quản lý dưới dạng này khá đơn giản nhưng chỉ sử dụng được với một lớp các bài toán hai chiều là hiệu quả, các bài toán ba chiều trở lên sử dụng mô hình này khá bất tiện

Trang 22

- Hệ thống mạng lập phương:

Hình 3.8 : Hệ thống mạng siêu lập phương ba chiều

Hệ thống mạng lập phương được sử dụng nhiều khi ánh xạ các bài toán phân rã ba chiều Ta sẽ xem xét lớp bài toán được phân rã theo miền để tìm hiểu quá trình ánh xạ bài toán vào các mạng phân tán

Hình 3.9: Phân rã theo miền cho bài toán trong không gian ba chiều

Bài toán phân rã trong không gian ba chiều có thể đơn giản hiểu là mỗi một máy tính thành phần (bộ xử lý) thực hiện một nhiệm vụ Liên kết giữa các nhiệm vụ tương tự liên kết giữa các máy tính trong mạng, lúc này việc ánh xạ tỏ ra đơn giản và hiệu quả

Trang 23

- Hệ thống mạng siêu lập phương bốn chiều

Hình 3.10: Hệ thống mạng siêu lập phương bốn chiều

Vậy các bài toán sau khi phân rã các nhiệm vụ có số chiều lớn hơn ba thì sao? Hoặc ta có thể ánh xạ trên các mô hình mạng lưới hai chiều hay lập phương ba chiều như trên, tuy nhiên cách này khá phức tạp do phát sinh các phép toán trước khi truyền thông cũng như tăng chi phí khi không thể truyền trực tiếp trên các máy tính cần và cung cấp dữ liệu Mô hình siêu lập phương được cung cấp nhằm giảm thiểu các quá trình truyền dữ liệu thừa qua đó giảm chi phí truyền thông

3.1.3 Mô hình bó máy tính mô phỏng hệ thống máy tính song song

Mô hình bó máy tính để mô phỏng hệ thống máy tính song song trở nên rất phổ biến vì

- Người sử dụng có thể tiếp cận được với các tính năng ưu việt của tính toán hiệu năng cao với chi phí thấp hơn nhiều so với một cấu hình máy tính song song thực

- Các bộ xử lý đời mới có thể dễ dàng được cập nhật vào nền tảng hệ thống

bó máy tính hiện có để có thể nâng cấp hiệu năng tính toán dễ dàng

Trang 24

- Các phần mềm hiện đang sử dụng có thể kế thừa vì kiến trúc bó máy tính gần như vẫn được giữ nguyên

Có hai mô hình bó máy tính thông dụng và hiệu quả được sử dụng hiện nay được mô tả sơ lược theo bảng sau

Bảng 3.1: Một số hệ thống siêu máy tính giá rẻ hiện đang được sử dụng

Bó siêu máy tính có thành phần là các

máy trạm

Bó siêu máy tính Beowulf

Máy trạm Máy trạm Máy trạm

Máy trạm Máy trạm Máy trạm

Máy trạm Máy trạm Máy trạm

Máy trạm Máy trạm Máy trạm

Máy trạm Máy trạm Máy trạm

Máy trạm Máy trạm Máy trạm

Máy trạm Máy trạm Máy trạm

Máy trạm Máy trạm Máy trạm

Bó siêu máy tính

Hình 3.11 : Hệ thống mạng máy trạm

Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút Nút

Hình 3.12: Hệ thống máy tính Beowulf

Các hệ thống bó máy tính trên sử dụng mạng nội bộ tốc độ cao Gigabit để kết nối các máy thành phần Ngoài ưu điểm về tốc độ, các mạng này còn rất dễ dàng trong việc cập nhật thêm các thành phần mới do đó rất dễ dàng trong việc

nâng cấp hệ thống

Trang 25

3.2 Một số kỹ thuật áp dụng

3.2.1 Ánh xạ thành các tiến trình độc lập

Có hai mô hình ánh xạ trên hai môi trường PVM và MPI, các mô hình này khác nhau lớn nhất ở chỗ, mô hình trên PVM có khả năng cấp phát động số lượng các tiến trình cũng như quản lý, kết thúc các tiến trình trong bất cứ thời điểm nào còn trên môi trường MPI thì không, các tiến trình (kể cả tiến trình chủ) phải đồng thời được khởi tạo và đồng thời kết thúc

Môi trường MPI

Trang 26

Môi trường PVM

Tiến trình chủ khởi tạo ra

các tiến trình thực hiện

Tiến trình thực hiện

Dữ liệu khởi tạo

Kết quả nhận được

Hình 3.14 : Lượng tiến trình động, độc lập trên nền PVM

3.2.2 Kỹ thuật chia để trị và truyền thông đồng bộ

- Đồng bộ hóa truyền thông

Đồng bộ hoá truyền thông là quá trình điều tiết các tiến trình thực hiện đồng

bộ với nhau Để tìm hiểu rõ ta sẽ xem xét các tiến trình tính toán song song trên thực tế bằng một phần mềm quản lý tiến trình trên nền PVM

Thời gian

Tính toán Đợi Các hàm truyền thông điệp Thông điệp

Tiến trình 1 Tiến trình 2 Tiến trình 3

Hình 3.15: Mô hình thực hiện của các tiến trình thu được trên nền PVM

Trang 27

Rõ ràng các tiến trình tính toán xong ở các thời điểm khác nhau, thời gian rỗi

và thời gian truyền thông cũng lệch nhau nên ta phải đồng bộ hoá các tiến trình

này để có thể thực hiện như sơ đồ sau

Hình 3.16 : Đồng bộ hóa các tiến trình theo thuật giải butterfly sử dụng hàm barrier

Trong từng bước các tiến trình sau khi tính toán và truyền thông phải đợi nhau, tức là đồng bộ hoá các quá trình truyền thông Việc này được thực hiện bằng các hàm barrier trong cả PVM và MPI

- Tính tổng theo giải thuật butterfly và đồng bộ hoá truyền thông

Kỹ thuật tính toán song song phổ biến và hiệu quả nhất là kỹ thuật chia để trị

Kỹ thuật này chi nhỏ bài toán ra thành các phần độc lập nhau, sử dụng truyền thông đồng bộ để đồng bộ hoá quá trình tính toán và truyền thông, qua đó tìm

ra thuật giải để tối thiểu hoá thời gian tính toán Ta sẽ hiểu được kỹ thuật này thông qua thuật giải butterfly tìm tổng của một dãy số

Trang 28

Hình 3.17: Tính tổng của 16 số hạng sử dụng giải thuật butterfly

Rõ ràng theo mô hình trên để cộng 16 số hạng ta chỉ cần 3 đơn vị thời gian tính toán và 3 đơn vị thời gian truyền thông thay vì 16 đơn vị thời gian tính toán như trong tính toán tuần tự Đặc biệt kỹ thuật này được sử dụng trong hàm ReduceAll của MPI và PVM Điều này chứng tỏ các thư viện hàm của PVM và MPI đã được tối ưu ở một mức độ nào đó

- Thuật giải tính tổng cho bài toán tính tích phân số bằng xấp xỉ hình thang Như ta đã biết thực chất tích phân của một hàm số là tổng vô hạn của hàm số

đó Do đó để tính tích phân số (giá trị dưới dạng số) trên máy tính ta phải rời rạc hoá miền lấy tích phân rồi cộng các phần lại với nhau Ở đây ta sử dụng phương pháp hình thang Tức là tích phân số bằng tổng diện tích của các hình thang thành phần

Trang 29

Hình 3.18 : Tính tích phân số bằng tổng diện tích các hình thang

Sau khi ánh xạ các miền nhỏ cho từng bộ xử lý ta sẽ thực hiện thuật giải lấy tổng butterfly như trên để tính tích phân này

Ví dụ là số pi được tính theo công thức sau: 1 2

0

4dx

1 x

+

∫Rời rạc hoá miền khảo sát ta thu được

Hình 3.19 : Tính số pi theo công thức tổng diện tích hình thang

Cuối cùng công thức tính gần đúng số pi là tổng sau

Trang 30

Về bản chất ánh xạ dồn không hoàn toàn là một kỹ thuật tính toán song song

vì thời gian thực hiện một công việc đơn của kỹ thuật này so với tính toán tuần tự là bằng nhau, tuy nhiên trong tính toán song song, rất nhiều thời điểm

có các bộ xử lý rỗi do phải đợi các tiến trình khác cung cấp dữ liệu cho nó, nên đây là một mô hình rất thích hợp để tận dụng các bộ xử lý rỗi này Ngoài

ra kỹ thuật này còn được sử dụng để thực hiện một chuỗi các công việc rất hiệu quả

Tiến trình chủ

Các tiến trình thực hiện

i 1

d

i 1

d

i 1

d

∑Tổng

Hình 3.20: Kỹ thuật tính toán song song pipeline

3.2.4 Kỹ thuật sai phân

Kỹ thuật sai phân được sử dụng để song song hoá các ứng dụng sử dụng phương pháp lưới Phương pháp lưới là phương pháp rất mạnh trong phương pháp số, được sử dụng để giải các phương trình vi phân hay phương trình vi phân đạo hàm riêng rất hiệu quả

[3] đã sử dụng phương pháp lưới để giải bài toán truyền nhiệt một chiều (giải phương trình vi phân đạo hàm riêng cấp 2) Luận văn này chuyển đổi môi trường lập trình và thực hiện giải bài toán truyền nhiệt hai chiều

Trang 31

Bài toán truyền nhiệt là phương trình vi phân đạo hàm riêng với các điều kiện biên như hình vẽ

Phóng toĐiều kiện biên

Hình 3.21 : Mô hình hóa bài toán giải phương trình truyền nhiệt hai chiều

Giải phương trình truyền nhiệt bằng phương pháp lưới sử dụng nR x Rn nút Phương pháp lưới sử dụng phép lặp để tính giá trị tại các nút, để tính được giá trị tại nút (i, j) ở lớp k + 1 ta phải biết giá trị tại 4 nút là (i – 1, j), (i +

3.3 Đo hiệu năng của tính toán song song

Trong các chỉ tiêu đánh giá giải thuật song song như thời gian thực hiện giải thuật (gồm thời gian tính toán, thời gian truyền thông, và thời gian trễ), hiệu

Trang 32

quả (tính hiệu quả so với giải thuật tuần tự), tính quy mô (hiệu quả tăng theo kích thước của bài toán) và tăng tốc thì yếu tố tăng tốc đóng vai trò chủ đạo

để xác định, lựa chọn thuật giải song song tối ưu cho bài toán

Tăng tốc (SR p R) được định nghĩa là tỷ lệ giảm của thời gian thực hiện song song trên p bộ xử lý so với thời gian thực hiện song song trên một bộ xử lý

1

p

TT

p

Thêi gian thùc hiÖn song song trª n mét bé xö lýS

Thêi gian thùc hiÖn song song víi p bé xö lý (3.3)

Amdahl đã đưa ra công thức của tăng tốc như sau

Hình 3.22 : Mô hình tính toán hệ số tăng tốc

Trang 33

CHƯƠNG 4

GIAO THỨC TRUYỀN THÔNG ĐIỆP MPI - MESSAGE PASSING INTERFACE

Giao thức truyền thông điệp MPI (Message Passing Interface) là một tiêu

chuẩn quan trọng và đang được phát triển rất nhanh do MPI tích hợp một hệ thống truyền thông rất linh hoạt và chi phí tài nguyên thấp MPI giúp các nhà khoa học tiếp cận và phát triển một số lượng lớn các lớp ứng dụng kỹ thuật với hiệu quả cao và chi phí thấp

MPI là một hệ thống truyền thông chuẩn và linh hoạt được thiết kế bởi một viện nghiên cứu nhằm thực hiện tính toán song song trên một lớp lớn các

mô hình máy tính song song Mã nguồn của MPI được viết bằng hai phiên bản Fortran và C nên rất thuận tiện cho các nhà khoa học đã sử dụng Fortran

và C là ngôn ngữ trong các nghiên cứu của họ Do MPI là mã nguồn mở nên

đã có rất nhiều các dự án thương mại hoá MPI, phát triển MPI thành các phần mềm thương mại rành cho các mục đích cụ thể Ví dụ Distribution Toolbox

do công ty Mathworks phát triển tích hợp và phần mềm Matlab để thực hiện song song một lớp các phép tính trong Matlab Ngoài ra, các dịch vụ tính toán hiệu năng cao đang được phát triển rất mạnh Người sử dụng muốn giải quyết một bài toán có kích thước lớn có thể mô tả bài toán và gửi đến trang web có dịch vụ tính toán này Trang web này sẽ sử dụng các siêu máy tính để giải bài toán và gửi trả kết quả cho người sử dụng Hầu hết các mô hình tính toán song song đang sử dụng hiện nay đều sử dụng giao thức tính toán MPI là lõi

Trang 34

Giao thức MPI là giao thức chuẩn được xây dựng bởi hơn 40 tổ chức ở

Mỹ và Châu Âu Sau 2 năm thống nhất các tiêu chuẩn (1992 – 1994) phiên bản đầu tiên 1.0 được công nhận vào tháng 6 năm 1994 Phiên bản 2.0 hỗ trợ thêm lập trình hướng đối tượng (Fortran 90 và C++) và các giao thức vào ra mới

4.1 Giới thiệu

Truyền thông điệp là mô hình lập trình phổ biến trong các mô hình máy tính song song phân cấp (SPCs - Scalable Parallel Computers) hoặc trong các mạng liên kết các bó máy tính (NOWs - Network of WorkStations) Để tiết kiệm chi phí, một thư viện các hàm truyền thông điệp được tiêu chuẩn hoá đánh dấu sự ra đời của MPI MPI có thể thực hiện được trên các siêu máy tính của IBM, Intel hay mạng các máy tính phân tán Do đó có thể nghiên cứu các ứng dụng song song trên máy tính phân tán (để giảm chi phí) rồi khi ứng dụng

có thể sử dụng trên các siêu máy tính hiện có (hiệu năng lớn hơn) MPI thực hiện ngầm một phần lớn các quá trình truyền thông điệp giữa các bộ xử lý do

đó có giao diện thân thiện với người sử dụng Tính linh hoạt của MPI cho phép thực hiện cùng một mã nguồn trên nhiều cấu hình máy tính song song khác

nhau

MPI thực hiện được trên cả mô hình MIMD (Multi Instruction – Multi

D ata) và đặc biệt là MPMD (Multi Program – Multi Data) Tất nhiên MPI cũng thực hiện được trên cả mô hình SPMD (Single Program – Single Data)

Khác với PVM (Parallel Virtual Machine) hay các môi trường lập trình song song khác, MPI không hỗ trợ quản lý động các tiến trình như tạo hay kết thúc tiến trình

Trang 35

MPI hỗ trợ các quá trình truyền thông sau:

- Khởi tạo, quản lý và kết thúc các quá trình truyền thông điệp,

- gửi và nhận các thông điệp từ các cặp tiến trình,

- quản lý, gửi và nhận các thông điệp từ các nhóm tiến trình khác nhau,

- sử dụng các kiểu dữ liệu riêng biệt cho truyền thông

Khi sử dụng MPI, chúng ta cần chú ý MPI không hỗ trợ các kỹ thuật sau:

- Chia sẻ bộ nhớ,

- các công cụ quản lý tiến trình như ngắt, điều độ tiến trình,

- công cụ xây dựng cũng như tìm lỗi khi lập trình,

- quản lý vào ra I/O

4.1.1 Tổng quan về một chương trình MPI

Một chương trình tính toán song song chuẩn MPI2.0 sử dụng ngôn ngữ C++

Hình 4.1: Cấu trúc cơ bản của một chương trình sử dụng giao thức MPI

Trang 36

4.1.2 Các tập hợp truyền thông

MPI sẽ tự cung cấp một tổ hợp truyền thông cơ bản là

MPI_COMM_WORLD có thể giao tiếp với nhau Người sử dụng có thể chia nhỏ MPI_COMM_WORLD thành các tổ hợp nhỏ hơn như hình vẽ

1

3 0

3 0

2

3

0

1 2

Truyền thông:

MPI_COMM_WORLD

Comm1 Comm2

Hình 4.2: Các tập hợp truyền thông trong MPI

4.1.3 Kiểu dữ liệu trong MPI

Bảng 4.1: Các kiểu dữ liệu điển hình trong giao thức MPI

Kiểu dữ liệu trong MPI Mô tả kiểu dữ liệu tương ứng ngôn ngữ C

MPI_UNSIGNED,

Trang 37

MPI_FLOAT Số thực: 4-byte

MPI_DOUBLE,

MPI_UNSIGNED_LONG_LONG Số nguyên không dấu mở rộng: 8-byte

Bảng 4.2: Kiểu dữ liệu tương ứng với các tham số truyền vào các hàm MPI

Kiểu dữ liệu trong MPI Mô tả kiểu dữ liệu tương ứng ngôn ngữ C

MPI_DOUBLE, MPI_LONG_DOUBLE

MPI_SHORT_INT, MPI_LONG_DOUBLE_INT

MPI_LAND (logic AND),

MPI_LOR (logic OR),

MPI_LXOR (logic XOR)

MPI_INT, MPI_LONG, MPI_SHORT, MPI_UNSIGNED_SHORT,

MPI_UNSIGNED, MPI_UNSIGNED_LONG

MPI_BAND (logic nhị phân AND),

MPI_BOR (logic nhị phân OR),

MPI_BXOR (logic nhị phân XOR)

MPI_INT, MPI_LONG, MPI_SHORT, MPI_UNSIGNED_SHORT,

MPI_UNSIGNED,

Trang 38

MPI_UNSIGNED_LONG, MPI_BYTE

4.2 Truyền thông từ điểm tới điểm

Đây là quá trình truyền thông cơ bản và đơn giản nhất trong MPI Quá trình này truyền trực tiếp một thông điệp từ một tiến trình tới một tiến trình khác

Tiến trình 0 Đệm dữ liệuKiểu lượngSố Tiến trình 1

Thông điệp

Hình 4.3: Chi tiết mô hình truyền thông điểm tới điểm

Trong MPI, thông điệp gồm biến đệm chứa giá trị cần gửi, kiểu dữ liệu

và số lượng biến cần gửi

Do kiểu dữ liệu là riêng biệt của MPI nên không có các kiểu dữ liệu như mảng một chiều hay hai chiều nên để gửi một mảng trong một gói thông điệp

ta kết hợp 3 thành phần trên

Trang 39

Giả sử hai tiến trình phải gửi nhận nhiều lần thì phải phân biệt các lần gửi và nhận trên bằng các thẻ khi gửi Ví dụ tiến trình 0 gửi hai thông điệp có hai biến kiểu số nguyên và kiểu character với hai thẻ là 100 và 101 Khi đó tiến trình 1 nhận thông điệp có thẻ 100 vào biến nguyên và thẻ 101 vào biến

kiểu character

Khi thực hiện truyền thông điểm tới điểm cần tránh tính trạng khoá cứng Tình trạng khoá cứng xảy ra khi 2 tiến trình khoá lẫn nhau khiến chương trình không hoạt động và cũng không thực hiện được việc gửi thông điệp Để giảm xảy ra tình trạng này nhiều ta hạn chế đồng thời đọc và đồng thời ghi trên một

bộ nhớ, cũng như đồng bộ hoá việc truyền thông bằng cách sử dụng các hàm chặn việc gửi và nhận thông điệp

Hàm mặc định trong MPI để gửi từ điểm tới điểm sẽ khoá tiến trình gửi đến khi tiến trình nhận thu được dữ liệu MPI cũng hỗ trợ các hàm gửi chỉ để khởi tạo dữ liệu vào vùng đệm hay gửi mà không khoá tiến trình gửi lại để sử dụng tuỳ vào bài toán cụ thể

Tóm lại ta có 8 hàm thực hiện gửi trong MPI như sau:

Bảng 4.3: Các mô hình gửi thông điệp MPI hỗ trợ

Mô hình gửi Khoá tiến trình gửi Không khoá tiến trình gửi

4.3 Các gói truyền thông

MPI hỗ trợ các gói truyền thông được sử dụng để gửi và nhận giữa một lớp các tiến trình Mặc dù các câu lệnh gửi từ điểm tới điểm của MPI là đủ để sử dụng

Trang 40

trong các bài toán nhưng MPI hỗ trợ thêm các hàm để thực hiện nhiều quá trình truyền thông Các hàm này sử dụng các thuật toán tối ưu giữa tính toán

và truyền thông để thu được hiệu quả tính toán cao Chính vì vậy mỗi hàm chỉ được sử dụng với một mục đích cụ thể và để sử dụng được các hàm này ta phải

am hiểu thuật giải truyền thông và tính toán của chúng, qua đó mới truyền

được các tham số chính xác cho chúng

4.3.1 Gói quảng bá truyền thông (MPI_BCAST)

MPI_BCAST thực hiện sao chép dữ liệu từ tiến trình gốc tới cùng vị trí ô nhớ

trong các tiến trình đích

Hình 4.4 : Mô hình quảng bá truyền thông

Tiến trình p0 gửi giá trị A ở vị trí thứ nhất trong bộ nhớ của mình sang các tiến trình p1, p2, p3 và biến A cũng được lưu ở vị trí đầu tiên trong bộ nhớ của các

tiến trình tương ứng

4.3.2 Gói tổng hợp thông điệp (MPI_Reduce)

Hàm MPI_Reduce thực hiện các công việc sau:

Thu nhận các dữ liệu từ các tiến trình,

Ngày đăng: 10/02/2021, 14:21

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Lê Đăng Hưng, Tạ Tuấn Anh, Nguyến Hứu Đức, Nguyễn Thanh Thủy (chủ biên) “Lập trình hướng đối tượng với C++” , NXB Khoa học kỹ thuật, 1999 Sách, tạp chí
Tiêu đề: ) “Lập trình hướng đối tượng với C++”
Nhà XB: NXB Khoa học kỹ thuật
[2] Nguyễn Văn Khang, “Dao động kỹ thuật”, NXB Khoa học kỹ thuật, 2001 Sách, tạp chí
Tiêu đề: “Dao động kỹ thuật”
Nhà XB: NXB Khoa học kỹ thuật
[3] Nghiêm Bảo Long, “Đồ án tốt nghiệp đại học”, Bộ môn Cơ học ứng dụng, Đại học Bách Khoa Hà Nội, 2004 Sách, tạp chí
Tiêu đề: “Đồ án tốt nghiệp đại học”
[4] Đinh Văn Phong, “Phương pháp số trong cơ học”, NXB Khoa học kỹ thuật, 2000 Sách, tạp chí
Tiêu đề: “Phương pháp số trong cơ học”
Nhà XB: NXB Khoa học kỹ thuật
[5] Nguyễn Thanh Thuỷ (chủ biên), Nguyễn Quang Huy, Nguyễn Hữu Đức, Đinh Lan Anh, “Nhập môn hệ điều hành LINUX” , NXB Khoa học kỹ thuật, 2000Tiếng Anh Sách, tạp chí
Tiêu đề: “Nhập môn hệ điều hành LINUX”
Nhà XB: NXB Khoa học kỹ thuật
[7] Barry Wilkinson, “Parallel Programming Techniques and Applications Using Networked Workstations and Parallel Computers”, NXB Prentice Hall, 2002 Sách, tạp chí
Tiêu đề: “Parallel Programming Techniques and Applications Using Networked Workstations and Parallel Computers”
Nhà XB: NXB Prentice Hall
[8] David B. Skillicorn, Domenico Talia, “Models and Languages for Parallel Computation”, 1996 Sách, tạp chí
Tiêu đề: “Models and Languages for Parallel Computation”
[9] Grewal, “Numerical Methods in Engineering & Science”, Khanna Publishers, 2000 Sách, tạp chí
Tiêu đề: “Numerical Methods in Engineering & Science”
[10] Ian Foster, “Designing and Building Parallel Programs”, Addition Wesley Publishing Company, 1994 Sách, tạp chí
Tiêu đề: “Designing and Building Parallel Programs”
[11] Jeremy Kepner, “Parallel Parallel Programming with MatlabMPI”, MIT, 2006 Sách, tạp chí
Tiêu đề: “Parallel Parallel Programming with MatlabMPI”
[12] C. Moler, “Why there isn't a parallel MATLAB”, Mathworks inc, 1995 Sách, tạp chí
Tiêu đề: “Why there isn't a parallel MATLAB”
[13] Michael J.Quinn, “Parallel Computing: Theory and Practice”, McGraw-Hill Sách, tạp chí
Tiêu đề: “Parallel Computing: Theory and Practice”
[14] Peter S. Pacheco, “Users’ Guide to MPI”, Department of Mathematics, University of San Francisco, 1998 Sách, tạp chí
Tiêu đề: “Users’ Guide to MPI”
[15] Yukiya Aoyama, Jun Nakano, “Practical MPI Programming”, 1999. http://www.redbooks.ibm.com Sách, tạp chí
Tiêu đề: “Practical MPI Programming”

TỪ KHÓA LIÊN QUAN

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