Điều này đòi hỏi phải phân tích dữ liệu, tìm sự phụ thuộc dữ liệu giữa các bước của thuật toán, phân tích câu lệnh, tìm hiểu các mô hình xử lý song song, hệ thông máy tính và ngôn ngữ lậ
Trang 1HUONG DAN CÀI ĐẶT MPI & HADOOP
Giảng viên hướng dẫn
: 3120519058 :19CNTTD : CỬ NHÂN CÔNG NGHỆ THÔNG TIN
Trang 2Lập Trình Song Song GVHD:Nguyén Dinh Lau
LOI CAM ON
Đầu tiên, em xin chân thành cảm ơn các thầy các cô trong khoa Tin học
đã trang bị những kiến thức cho em trong suốt quá trình học tập tại Trường Đại
học
Sư Phạm Đà Nẵng vừa qua Chính nhờ công lao giảng dạy, chỉ bảo tận tình của các thầy các cô mà em mới có được những kiến thức chuyên ngành công nghệ thông tin đề có thê thực hiện tiếp chặng đường học tập, vận dụng và sáng tạo ra những sản phẩm hữu ích góp phần phục vụ các lĩnh vực khác nhau Thứ hai, em xin chân thành cảm ơn cán bộ hướng dẫn Nguyễn Đình Lầu người đã tận tình hướng dẫn, chỉ bảo cho em trong suốt quá trình thực hiện đề tài này
Mặc dù đã có nhiều cô gắng đề hoàn thành đồ án nhưng trong phạm vi
và khả năng cho phép, chắc chăn đỗ án không tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm, gop y va tận tình chỉ báo của quý thây cô
Em ximm chân thành cảm ơn mọi người!
Đà Nẵng, tháng 01 năm 2022
Sinh viên thực hiện:
Nguyễn Duy Thắng
Trang 3Lập Trình Song Song GVHD:Nguyén Dinh Lau
NHAN XET CUA CAN BO HUONG DAN
Da Nang, ngay thang nam
Trang 4Lập Trình Song Song GVHD:Nguyén Dinh Lau
Trang 5Lập Trình Song Song GVHD:Nguyén Dinh Lau
I Lap Trinh Song Song 341 4
1 Lap trinh song song là ØÌ? c2 121121112 1n xà nen 4
2 Kiến trúc máy tính song song - 5: tt E1 EE2112121 11 tre 5
3 Các mơ hình lập trình song song - 2 122 1222122 21112 re 5
4 Thuật tốn song song ác c1 22211212 H151 1111112 111k 7
TL )u bạaiiiiiadiẳiẳẳiẳiẳẳẳẳaẳaaậậiäAỶŸẢỶẢ 14
1 MPI là gì SH HH HH HH HH HH nà 14
3 Ưu nhược điểm - 2S 2S E515 11155551 5E Heo 14
II Hadoop E221 2211212121211 1111 112115111111 11211 51111115011 H1 11x key 15
Trang 6Lập Trình Song Song GVHD:Nguyén Dinh Lau
IL Cài đặt Hadoop 2 2 2222122111121 112111 111121112111 1811 18111011111 11ha 23
CHƯƠNG 3: CHẠY CHƯƠNG TRÌNH 5° 52s ssssecssessescse 48
L Chạy chương trình MPI bằng VS 2022 c1 E211 1t E1 rryey 48
IL Chạy MapReduceTDiikstra Trên Hadoop - 5 c2 2222222 re: 56
II Chạy WordCount Trên Hadoop - 222 1211112221111 21112 re 62
Trang 7Lập Trình Song Song GVHD:Nguyén Dinh Lau
SVTH:Nguyên Duy Thang 1 Lớp:19CNTTD
Trang 8Lập Trình Song Song GVHD:Nguyén Dinh Lau
MO DAU
I Dat van dé
Ly thuyét đồ thị là một lĩnh vực đã xuất hiện từ lâu trong toán học, tin học và có
nhiều ứng dụng trong thực tế Những tư tưởng cơ bản của lý thuyết đồ thị xuất hiện vào
những năm đầu của thế ky 18 bởi nhà toán học Thụy Sĩ Leonhard Euler trong bài bao về
bảy cây cầu ở Königsberg Từ đó lý thuyết đồ thị ngày càng khẳng định vị tri quan trọng của mình trong việc áp dụng đề giải các bài toán thực tế nhờ vào việc ngày càng tìm ra và chứng minh được các định lý, công thức và thuật toán
Trong các bài toán ứng dụng thực tế, bài toán tìm đường đi ngắn nhất giữa cặp đỉnh của một đồ thị liên thông được ứng dụng rất nhiều và có ý nghĩa hết sức to lớn, ví dụ: chọn hành trình tiết kiệm nhất trên mạng giao thông, lập lịch thi công các công đoạn trong một công trình thi công lớn, lựa chọn đường truyền tin
Tuy nhiên, đối với những bài toán phức tạp với số lượng đữ liệu lớn và phân tán thì thuật toán tìm đường đi ngắn nhất tuần tự xử lý rất lâu hoặc có những trường hợp
thuật toán tuần tự không thực hiện được Điều này đòi hỏi phải phân tích dữ liệu, tìm sự
phụ thuộc dữ liệu giữa các bước của thuật toán, phân tích câu lệnh, tìm hiểu các mô hình
xử lý song song, hệ thông máy tính và ngôn ngữ lập trình để song song hóa các thuật toán tuần tự tương ứng
MPI (Message Passing Interface) là thư viện hỗ trợ lập trình song song trong ngôn ngữ C MPI được phát triển bởi một điển đàn mở quốc tế, bao gồm nhiều tổ chức và phòng thí nghiệm của chính phủ MPI nhanh chóng được ứng dụng rộng rãi và trở thành một trong những mô hình được sử dụng phổ biến cho việc lập trình các hệ thống song song
Xuất phát từ đó tôi quyết định chọn đề tài “Song song hóa thuật toán tùn đường đi ngắn nhất giữa mọi cặp đỉnh sử dụng thư viện M4P?" làm đề tài tốt nghiệp luận văn cao
học
Trang 9Lập Trình Song Song GVHD:Nguyén Dinh Lau
II Mục đích
Nghiên cứu và song song hóa thuật toán Floyd_ Warshall cho bài toán tìm đường
đi ngắn nhất trên nguồn đữ liệu lớn và phân tán, từ đó nâng cao hiệu quả của việc xử lý
đữ liệu
III Noi dung
Trong luận văn này gồm có 3 nội dung:
- Nội dung I: Crới thiệu
- Nội dung 2: Cài Đặt
- Nội dung 3: Chạy chương trình
IV Phương pháp nghiên cứu
- Nghiên cứu các tài liệu về cơ sở lý thuyết: Lý thuyết đồ thị, xử lý song song
- Sử dụng phương pháp phân tích, so sánh và đánh giá các thuật toán tìm đường đi ngắn nhất
-Tiến hành hướng dẫn cách cài đặt MPI và Hadoop
-Cách chạy một số bài tập liên quan
SVTH:Nguyên Duy Thang 3 Lớp:19CNTTD
Trang 10Lập Trình Song Song GVHD:Nguyén Dinh Lau
CHUONG 1: MO DAU
I Lap Trinh Song Song
1 Lap trinh song song 1a gi?
- Những van đề về xử lý ngôn ngữ tự nhiên, nhận dạng, xử lý ảnh ba chiều, dự báo
thời tiết, mô hình và mô phỏng những hệ thống lớn trong thực tế đều đòi hỏi phải xử lý
dữ liệu với tốc độ rất cao và khối lượng đỡ liệu rất lớn
- Do đó, cần phải có những hệ thông máy tính thật mạnh mới thực hiện được
những yêu cầu trong thực tế một cách nhanh chóng và hiệu quả Điều này còn gặp nhiều khó khăn do khả năng giới hạn về vật lý Vì vậy, hướng xử lý song song là đùng các hệ thống máy tính đa bộ xử lý hoặc bộ xử lý đa nhân được lựa chọn đề giải quyết các bài
toán đặt ra
- Xử lý song song là quá trình xử lý gồm nhiều tiến trình được kích hoạt đồng thời
và cùng tham gia giải quyết một vấn đề, nói chung là thực hiện tính toán trên những hệ thông đa bộ xử lý
- Tính toán song song là một hình thức tính toán trong đó nhiều phép tính được thực hiện đồng thời, hoạt động trên nguyên tắc là những vấn đề lớn đều có thê chia thành nhiều phần nhỏ hơn đề giải quyết đồng thời trên các bộ xử lý
Một chương trình máy tính, về bản chất là một loạt những câu lệnh được thực hiện
bởi một bộ xử lý Những câu lệnh này sẽ được sắp xép lại và kết hợp thành các nhóm mà sau đó được thực hiện song song mà không thay đối kết quả của chương trình Đây được gọi là song song cấp câu lệnh
Một công việc phức tạp hơn so với lập trình tuần tự thông thường, người phát triển phải thực hiện một quá trình “song song hóa”, biến đôi các chương trình tuần tự thành chương trình song song có khả năng tận dụng tối đa sức mạnh của hệ thống
Lập trình song song bào gồm các bước :
-Phân hủy một thuật toán hay các dữ liệu đầu vào
-Phân chia nhiệm vụ cho các bộ phận để làm việc trong bộ vị xử lý cùng một lúc
-Phối hợp và trao đổi giữa các bộ vi xử lý
Trang 11Lập Trình Song Song GVHD:Nguyén Dinh Lau
2 Kién tric may tinh song song
- Những van đề về xử lý ngôn ngữ tự nhiên, nhận dạng, xử lý ảnh ba chiều, dự báo
thời tiết, mô hình và mô phỏng những hệ thống lớn trong thực tế đều đòi hỏi phải xử lý
dữ liệu với tốc độ rất cao và khối lượng đỡ liệu rất lớn
- Do đó, cần phải có những hệ thông máy tính thật mạnh mới thực hiện được
những yêu cầu trong thực tế một cách nhanh chóng và hiệu quả Điều này còn gặp nhiều khó khăn do khả năng giới hạn về vật lý Vì vậy, hướng xử lý song song là đùng các hệ thống máy tính đa bộ xử lý hoặc bộ xử lý đa nhân được lựa chọn đề giải quyết các bài
toán đặt ra
3 Các mô hình lập trình song song
Việc đưa ra một mô hình máy tính chung cho việc lập trình giúp cho việc thiết kế giải thuật trở nên đơn giản hơn Lập trình song song đưa thêm những khó khăn mới vào mô hình lập trình tuần tự Nêu chương trình được thực hiện ở mức thấp nhất thì không những số lệnh thực hiện là rất lớn mà nó còn phải trực tiếp quản lý quá trình thực hiện song song của hàng nghìn bộ xử lý và kết hợp hàng triệu tương tác liên bộ
xử lý Bởi vậy khả năng trừu tượng và tính toán module là các đặc tính rất quan trọng trong lập trình song song Các mô hình thông dụng bao gồm:
- M6 hinh chia sẽ bộ nhớ
- - Mô hình luỗng
- _ Mô hình truyền thông điệp
- Mô hình song song đữ liệu
3.1 Mô hình chia sẽ bộ nhớ
Trong mô hình này, nhiệm vụ cùng chia sẽ một không gian địa chí chung có thê được truy cập đọc ghi theo phương thức không đồng bộ Các cơ chế khác nhau như khóa (locks) và semaphore được điều khiển đề truy cập đến bộ nhớ toàn cục
Nhược điểm của mô hình này là khó giữ lại được tính nguyên thủy của dữ liệu khi
mà nhiều bộ xử lý dùng cũng đữ liệu này
Lợi thế của mô hình là người lập trình không cần chỉ định việc truyền đữ liệu giữa
các task; chương trình được phát triển thường được đơn giản hóa
1.3.2 Mô hình luồng
Trong mô hình luồng chương trình chính được chia thành các nhiệm vụ Mỗi
nhiệm vụ được thực hiện bởi các luồng một cách đồng thời Mỗi một luồng có dữ liệu
SVTH:Nguyên Duy Thang 5 Lớp:19CNTTD
Trang 12Lập Trình Song Song GVHD:Nguyén Dinh Lau
riêng của nó va chia sẽ dữ liệu toàn cục của chương trình chính Các nhiệm vụ đưa cho
mỗi luỗng là các thủ tục con của chương trình chính Bất kỳ luồng nào cũng có thê thực hiện bất kì thử tục con nào tại cùng thời điểm với các luồng khác Trong mô hình luồng các luồng kết nối với nhau thông qua bộ nhớ toàn cục với việc kết nối này thì chương trình phải được xây dựng một cách đồng bộ đề tránh cùng một lúc có nhiều luồng cùng
cập nhập một vị trí trong bộ nhớ toàn cục
3.2 Mô hình luống
Trong mô hình luồng chương trình chính được chia thành các nhiệm vụ Mỗi
nhiệm vụ được thực hiện bởi các luồng một cách đồng thời Mỗi một luồng có dữ liệu riêng của nó và chia sẽ dữ liệu toàn cục của chương trình chính Các nhiệm vụ đưa cho
mỗi luỗng là các thủ tục con của chương trình chính Bất kỳ luồng nào cũng có thê thực hiện bất kì thử tục con nào tại cùng thời điểm với các luồng khác Trong mô hình luồng các luồng kết nối với nhau thông qua bộ nhớ toàn cục với việc kết nối này thì chương trình phải được xây dựng một cách đồng bộ đề tránh cùng một lúc có nhiều luồng cùng
cập nhập một vị trí trong bộ nhớ toàn cục
3.3 Mô hình truyền thông điệp
Trong mô hình truyền thông điệp chương trình song song được chia thành các tác
nhiệm Mỗi tập các tác nhiệm sử dụng bộ nhớ cục bộ riêng của chúng trong quá trình tính
toán Nhiều tác nhiệm có thê năm trên cùng một máy cũng như năm trên nhiều máy
Tác vụ 0 Mane Tac vy |
Gửi dữ liệu Nhận dữ liệu
Các tác nhiệm trao đổi dữ liệu thông qua truyền thông bằng cách gửi và nhận các thông điệp
Có nhiều thư viện truyền thông điệp, nhưng chúng khác nhau đáng kẻ, gây khó khăn cho các nhà lập trình trong việc phát triển các ứng dụng di động MPI Forum được
SVTH:Nguyên Duy Thang 6 Lớp:19CNTTD
Trang 13Lập Trình Song Song GVHD:Nguyén Dinh Lau
lập ra với mục đích thiết lập một chuẩn cho việc triển khai mô hình truyền thông điệp
Hiện nay, MPI là chuẩn mô hình truyền thông điệp
3.4 Mô hình phân hoạch dữ liệu
Mô hình lập trình song song dữ liệu giúp lập trình các chương trình song song được thực hiện trên một tập dữ liệu lớn Tập dữ liệu ở đây thường được sắp xếp theo một
cầu trúc nhất định như là máng hoặc theo khối Với mô hình này thì các nhiệm vụ của
chương trình làm việc với cùng một câu trúc dữ liệu Tuy nhiên mỗi nhiệm vụ sẽ làm việc trên từng phân vùng khác nhau của dữ liệu và các nhiệm vụ phải thực hiện các thao tác
A(i)}=B(i)* delta A(i)=B(i)*delta A(i)=B(i)*delta
end do end do end do
Tac vu | Tac vu 2 ese Tac vun
Trong kiến trúc chia sẽ bộ nhớ chung, tất cả các nhiệm vụ truy cập vào cầu trúc đữ
liệu thông qua bộ nhớ toàn cục Còn đối với kiến trúc bộ nhớ phân tán thi dữ liệu được
chia ra va lưu trữ trên các bộ nhớ cục bộ của các bộ xử lý
4 Thuật toán song song
4.1 Quy trình thiết kế thuật toán song song
Song song hóa thuật toán là chuyên một thuật toán tuần tự đã có thành một thuật
toán song song Quy trình thiết kề thuật toán song song thực hiện qua bốn công đoạn: phân rã (Partition), truyền thông (Communication), tích tụ (Agglomeration) và ánh xạ
(Mapping) [12]
- Phân rã: Khi bài toán được xác định, công việc tính toán và đữ liệu của bài toán
được phân rã thành nhiều tác vụ Ta cố găng chú trọng vào việc xác định được nhiều tác
vụ cảng nhiêu càng tôt nều có thê Sô lượng tác vụ có thê lớn hơn nhiêu so với sô lượng
SVTH:Nguyên Duy Thang 7 Lớp:19CNTTD
Trang 14Lập Trình Song Song GVHD:Nguyén Dinh Lau
bộ xử lý đề linh hoạt hơn khi áp đụng vào mô hình thực tế Trong giai đoạn này ta chưa
dé cap đến vấn đề truyền thông, cầu trúc máy tính song song mà chỉ đề cập đến việc xác định được các khả năng thực hiện song song của bài toán Mục đích của công đoạn này là
ta tìm ra tập các tác vụ độc lập với nhau của bài toán và chú ý việc kết hợp dữ liệu, xác
định kết hợp tính toán với đữ liệu như thế nào
- Truyền thông: Công đoạn truyền thông được thể hiện thông qua luồng thông tin
sao cho các tác vụ được tạo ra trong công đoạn trên sẽ được thực hiện đồng thời Tính toán thực hiện trong một tác vụ thường sẽ yêu cầu dữ liệu kết hợp với các dữ liệu khác Sau đó, đữ liệu phải được truyền giữa các tác vụ để cho phép thực hiện tính toán
- Tích tụ: Công đoạn này sẽ gộp các tác vụ nhỏ đã tạo ra ở công đoạn phân rã
thành các tác vụ có kích thước lớn hơn Khi tích tụ các tác vụ nhỏ thành các tác vụ lớn thì
chi phí truyền thông sẽ giảm đi nhưng sẽ làm giảm tiềm năng thực hiện đồng thời
- Ảnh xạ: Đây là công đoạn cuỗi cùng, mỗi tác vụ sẽ được ấn định vào một bộ xử
ly nao do
4.2 Nguyên lý thiết kế thuật toán song song
Những thuật toán, trong đó có một số thao tac co thé thực hiện đồng thời được gọi
là thuật toán song song
Đề thiết kế được các thuật toán song song cần phải thực hiện:
- Phân chia dữ liệu cho các tác vụ
- Chỉ ra cách truy cập và chia sẻ dữ liệu
- Phân các tác vụ cho các tiến trình (bộ xử lý)
- Các tiền trình được đồng bộ ra sao
Có năm nguyên lý chính trong thiết kế thuật toán song song [l]:
1 Các nguyên lý lập lịch: Tạo lịch trình đề giảm tối thiêu các bộ xử lý sử dụng trong thuật toán sao cho thời gian tính toán là không tăng (xét theo khía cạnh độ phức
Trang 15Lập Trình Song Song GVHD:Nguyén Dinh Lau
4 Nguyên lý đồ thị phụ thuộc dữ liệu: Phân tích mối quan hệ dữ liệu trong tính toán đề xây dựng đồ thị phụ thuộc đữ liệu và dựa vào đó đề xây dựng thuật toán song song
5 Nguyên lý điều kiện tương tranh : Nếu hai tiễn trình cùng muốn truy cập vào cùng một mục dữ liệu chia sẻ thì chúng phải tương tranh với nhau, nghĩa là chúng có thê can trở lẫn nhau
Ngoài những nguyên lý nêu trên, khi thiết kế thuật toán song song còn một số điểm cần quan tâm:
1 Hiệu quả thực hiện của thuật toán song song có thể rất khác nhau, mà yếu tô
quan trọng nhất ảnh hưởng tới độ phức tạp tính toán là cầu hình tô pô liên kết mạng
2 Thuật toán song song phải được thiết kế dựa trên những kiến thức về kiến trúc máy tính, ngôn ngữ lập trình song song và các phương pháp tính toán
4.3 Các cách tiếp cận trong thiết kế
- Song song hóa các thuật toán tuần tự biến đổi những cầu trúc tuần tự đề tận
dụng khả năng song song tự nhiên của tất cả các thành phần trong hệ thông xử lý
- Thiết kế thuật toán song song hoàn toàn mới
- Thiết kế thuật toán song song từ những thuật toán song song đã được xây
dựng
4.4 Phân tích, đánh giá thuật toán song song
Trong thuật toán tuân tự chúng ta chỉ quan tâm đến độ phức tạp về thời gian và không gian, nhưng trong thuật toán song song thường có thêm một số đại lượng đo lường khác Độ phức tạp thời gian của thuật toán song song không
chỉ đơn giản là việc đếm số câu lệnh cơ bản như trong thuật toán tuần tự mà
thay vào đó nó phụ thuộc vào các phép toán cơ bản này có thê được thực hiện trên p bộ xử lý như thế nào Bên cạnh độ phức tạp thời gian độ phức tạp về số
bộ xử lý cũng là một đại lượng quan trọng trong phân tích thiết kế thuật toán song song
Thiết kế thuật toán song song hiệu quả bao gồm việc lựa chọn cấu trúc
đỡ liệu phù hợp, phân bố bộ xử lý và cudi cùng là thực hiện thuật toán Ba đại
lượng này tác động lẫn nhau như một tô chức tính toán
SVTH:Nguyên Duy Thang 9 Lớp:19CNTTD
Trang 16Lập Trình Song Song GVHD:Nguyén Dinh Lau
Đánh giá thuật toán song song
Độ phức tạp tính toán của thuật toán song song không chỉ phụ thuộc vào kích cỡ của đữ liệu đầu vào mà còn phụ thuộc vào kiến trúc máy tính song song
và sô lượng các bộ xử lý được phép sử dụng trong hệ thống Độ phức tạp thời gian là thước đo quan trọng nhất đánh giá mức độ hiệu quả của thuật toán song song Chúng ta giả thiết rằng mô hình tính toán có p bộ xử lý Nghĩa là mức độ song song có giới hạn Ngược lại, mức độ song song không bị giới hạn khi số các bộ xử lý là không bị chặn Độ phức tạp của thuật toán song song sử dụng p
bộ xử lý đề giải một bài toán có kích cỡ n là hàm f{n,p) xác định thời gian cực
đại trôi qua giữa thời điểm bắt đầu thực hiện thuật toán với một bộ xử lý và thời
điểm kết thúc của các bộ xử lý đối với bộ dữ liệu vào bất kỳ Có hai loại thao
tác khác nhau trong các thuật toán song song:
1 Các phép toán cơ sở nhu +,-,*,/,AND,OR
2 Các phép toán truyền dữ liệu trên các kênh truyền
Độ phức tạp thời gian của thuật toán song song được xác định bởi số các phép toán cơ sở và số các bước truyền tải đữ liệu giữa các bộ xử lý với nhau
Từ đó suy ra, độ phức tạp thời gian của thuật toán song song không chỉ phụ thuộc vào mô hình tính toán mà còn phụ thuộc vào số bộ xử lý được sử dụng Nói chung, chương trình tính toán song song thường bắt đầu bằng việc
nhập đữ liệu vào bộ nhớ và kích hoạt một phan tử xử lý Mỗi bước tính toán,
phần tử xử lý này có thể đọc một số dữ liệu từ bộ nhớ, thực hiện một số phép
toán cơ sở và ghi kết quả vào bộ nhớ riêng hoặc bộ nhớ chung Đồng thời mỗi
bước tính toán, một phần tử xử lý có thê kích hoạt một hay một số phân tử xử lý khác Thực tế thì các máy đều có số bộ xử lý là hữu hạn, nên những thuật toán song song không bị giới han chỉ có nghĩa sử dụng khi chúng có thê chuyến đổi
về thuật toán song song bị giới hạn
Thời gian tính toán song song
Trang 17Lập Trình Song Song GVHD:Nguyén Dinh Lau
Đề đánh giá được độ phức tạp tính toán của các thuật toán song song, ngoài số bước tính toán chúng ta còn cần đánh giá thời gian truyền thông của các tiền trình Trong một hệ thông truyền thông điệp, thời gian truyên thông điệp cũng phải được xem xét trong thời gian thực hiện của thuật toán
Thời gian thực hiện song song, ký hiệu là tp ¬gồm hai phan la tcomp va
tcomm
tp = tcomp + tcomm
Trong đó tcomp là thời gian tính toán và tcomm là thời gian truyền thông
dữ liệu Thời gian tính toán tcomp được xác định giồng như thuật toán tuân tự
Khi có nhiều tiến trình thực hiện đồng thời thì chỉ cần tính thời gian thực hiện
của tiên trình phức tạp nhất Trong phân tích độ phức tạp thuật toán, chúng ta luôn giả thiết rằng, tất cả các bộ xử lý là giống nhau và cùng một tốc độ xử lý như nhau Đối với những cụm máy tính không thuần nhất thì điều này không dam bảo nên việc đánh giá thời gian tính toán của những hệ như thế là rất phức
tạp
Thời gian truyền thông tcomm lại phụ thuộc và kích cỡ của các thông điệp, vào cầu hình kết nỗi mạng đường truyền và các cách thức truyền tải thông điệp Công thức ước lượng thời gian truyền thông điệp được xác định như sau:
tcomm = tstartup + n tdata Trong đó, tstartup là thời gian cần thiết để gửi những thông điệp
không phải là đữ liệu Nó bao gồm cả thời gian để đóng gói thông điệp ở nơi
gửi và thời gian mở gói ở nơi nhận Để đơn giản chúng ta giả thiết thời gian này
là hằng số
tdata là thời gian cần thiết để chuyển một mục đữ liệu (data word) từ
nơi gửi tới nơi nhận, được giả thiết là hằng số và n là số từ đữ liệu được trao đổi
trong hệ thống
SVTH:Nguyên Duy Thang 11 Lép:19CNTTD
Trang 18Lập Trình Song Song GVHD:Nguyén Dinh Lau
Chi phí cho một thuật toán song song được xác định bằng tích của
thời gian tính toán song song và số bộ xử lý được sử dụng Chi phí này phản ánh tông số thời gian mà một bộ xử lý dùng đề giải quyết bài toán
Hệ số tăng tốc cũng là yêu tô đáng chủ ý khi đánh giá thuật toán song
song được song song hoa từ một thuật toán tuần tự
Hệ số tăng tốc là tí lệ giữa thời gian thực hiện của thuật toán tuần tự ts
và thời gian thực hiện của thuật toán song song tp với p bộ xử lý
Sp =ts/tp Giả sử các bộ xử lý trong hệ thống song song hoàn toàn giống với bộ
xử lý sử dụng trong tính toán tuần tự và ts là thời gian thực hiện bài toán bằng tính toán tuần tự tối ưu nhất Hệ số tăng tốc lý tưởng đạt được khi Šp = p
Rõ ràng khả năng tăng tốc càng lớn thì giải thuật song song càng tốt Tuy nhiên, năm 1967 Amdahl đã đưa ra luật về giới hạn khả năng tăng tốc như sau:
Khi tăng số lượng bộ xử lý trong máy tính song song, khối lượng
công việc được phân phối với nhiều bộ xử lý thực hiện Mục tiêu chính là tìm được kết quả bài toán nhanh nhất có thê hay nói cách khác là giảm đến mức tối
đa thời gian tính toán
Luật Amdahl: luật này phát biểu rằng nếu P là tỉ lệ có thê song song hóa của thuật toán tuần tự thì hệ số tăng tốc lớn nhất có thê đạt được khi sử đụng N bộ xử lý là 1/((1-P)
+P/N) Ta có biểu đồ thể hiện luật Amdahl như hình 1.10
Trang 19GVHD:Nguyén Dinh Lau
Lap Trinh Song Song
Hiệu suất của tính toán song song là tỉ sô giữa hệ sô tăng tôc và sô các phân tử xử
lý trong hệ thông song song
SVTH:Nguyên Duy Thang 13 Lép:19CNTTD
Trang 20Lập Trình Song Song GVHD:Nguyén Dinh Lau
thi hành bao gồm một thư viện các thủ tục sao cho có thể gọi được từ các
chương trình Fortran, C, C++ hay Ada Lợi thế của MPI so với các thư viện cũ
là nó vừa thuận tiện (vì MPI thực thị cho hầu hết các kiến trúc bộ nhớ phân
phối) vừa nhanh (vì mỗi thủ tục được tôi ưu hóa cho phần cứng mà nó đang chạy) Thường được so sánh với PVM và có thê kết hợp nó đề tạo thành
Parallel Execution) là một hướng tiếp cận sử dụng kỹ thuật đánh dấu tiến trình
(Checkpointing) đề cài đặt OpenMP trên các kiến trúc sử đụng bộ nhớ phân tán Bài báo này đi sâu vào việc phân tích và đánh giá hiệu năng hoạt năng hoạt
động của CAPE thông qua việc so sánh mô hình hoạt động của nó với mô hình
của MPIL, từ đó đưa ra những nhận định cho việc sử dụng CAPE một cách hiệu
quả
Nhược điểm:
nhược điểm lớn nhất của MPI là chỉ có thể chạy trên các kiến trúc sử
dụng bộ nhớ chia sẻ
Trang 21Lập Trình Song Song GVHD:Nguyén Dinh Lau III Hadoop
1 Hadoop la gi
Hadoop là một mã nguồn mở được viết bằng java, cho phép xử lý phân tan (distributed processing) các tập đữ liệu lớn trên các cum may tinh (clusters
of computers) thong qua mé hinh lập trình đơn gián Hadoop được thiết kế đề
mở rộng quy mô từ một máy chủ đơn sang hàng ngàn máy tính khác có tính toán và lưu trữ cục bộ (local computation and storage)
Hadoop gồm 4 module:
Hadoop Common: Day là các thư viện và tiện ích cần thiết của Java đề
các module khác sử dụng Những thư viện này cung cấp hệ thông ñle và lớp OS trừu tượng, đồng thời chứa các mã lệnh Java đề khởi động Hadoop
Hadoop YARN: Day la framework dé quán lý tiến trình và tài nguyên của cac cluster
Hadoop Distributed File System (HDFS): Day la hé thong file phan
tán cung cấp truy cập thông lượng cao cho ứng dụng khai thác dữ liệu
Hadoop MapReduce: Đây là hệ thống dựa trên YARN dùng đề xử lý song song các tập đữ liệu lớn
SVTH:Nguyên Duy Thang 15 Lép:19CNTTD
Trang 22Lập Trình Song Song GVHD:Nguyén Dinh Lau
MapReduce (Distributed Computation)
HDFS (Distributed Storage)
2 Ung Dung Hadoop
© - Xử lý và làm việc khối lượng dữ liệu không lỗ tính bang Petabyte
e - Xử lý trong môi trường phân tán, đữ liệu lưu trữ ở nhiều phần cứng khác nhau, yêu cầu xử lý đồng bộ
© Cac lỗi xuất hiện thường xuyên
® - Băng thông giữa các phần cứng vật lý chứa dữ liệu phân tán có giới
hạn
3 Ưu nhược điểm
Ưu điểm
Trang 23Lập Trình Song Song GVHD:Nguyén Dinh Lau
-Khả năng mở rộng cao: Hadoop là một nền tảng lưu trữ có khả năng mở rộng cao bởi vì nó có thê lưu trữ và phân phối các bộ dữ liệu rất lớn trên hàng trăm máy chủ hoạt động song song Không giống như các hệ thông cơ sở đữ liệu quan hệ truyền thống (RDBMS) không thê mở rộng xử lý lượng lớn đữ liệu, Hadoop cho phép các doanh nghiệp chạy các ứng dụng trên hàng ngàn node liên quan tới hàng ngàn Terabyte dữ liệu
-Chi phí hiệu quả: Hadoop cũng cung cấp một giải pháp lưu trữ hiệu quả
về chỉ phí cho các dữ liệu của doanh nghiệp Vẫn đề với các hệ thống quản lý
cơ sở dữ liệu quan hệ truyền thống là nó được đầu tư tối đa chi phí để mở rộng
tới một mức độ đề xử lý khối lượng lớn đữ liệu Đề giảm chỉ phí, nhiều công ty
sẽ phải phân loại đữ liệu thành các dạng mẫu dựa trên một số gái định khi dữ liệu đó có giá trị nhất Các dữ liệu thô sẽ được xóa bỏ vì nó tạo nên gánh nặng
chi phí Thêm vào đó, phương pháp này chỉ có thể đáp ứng trong ngắn hạn
Điều đó có nghĩa khi các ưu tiên kinh doanh thay đổi, các dữ liệu thô hoản
chỉnh cần thiết không có sẵn vì nó quá đắt đề lưu trữ Ngược lại, Hadoop được thiết kế như một kiến trúc quy mô có chi phí thấp nhưng có thê lưu trữ tất cả các đữ liệu của công ty đề sử dụng sau Hadoop giúp tiết kiệm chỉ phí dang kinh ngạc: thay vi chi phsi hàng ngàn đến hàng chục ngàn $ mỗi Terabyte,
Hadoop cung cấp khả năng tính toán và lưu trữ mỗi Terabyte chỉ với vài trăn $ -Linh hoạt: Hadoop cho phép các doanh nghiệp để dàng tiếp cận các
nguồn dữ liệu mới và khai thác các loại dữ liệu khác nhau( cả hai đều có cầu
trúc và phsi cầu trúc) dé tao ra giá trị từ đữ liệu đó Điều này có nghĩa các
doanh nghiệp có thể sử dụng Hadoop đề thu được những hiểu biết kinh doanh
có giá trị từ đữ liệu đó Điều đó có nghĩa các doanh nghiệp có thê sử dụng
Hadoop đề thu được những hiểu kinh doanh có giá trị từ các nguồn đữ liệu như
phương tiện truyền thông xã hội, các cuộc hội thoại email hoặc dữ liệu kích
chuột, thống kê sở thích, hoạt động của người đùng Ngoài ra Hadoop có thê
được sử dụng cho nhiều mục đích, chăng hạn như xử lý đăng nhập, các hệ
SVTH:Nguyên Duy Thang 17 Lép:19CNTTD
Trang 24Lập Trình Song Song GVHD:Nguyén Dinh Lau
thống được đề nghị, kho dữ liệu phân tích chiến dịch thị trường và phát hiện
gian lận
-Nhanh: Phương pháp lưu trữ độc đáo của Hadoop dựa trên một hệ thông tập tin phân phối theo các “bản đồ” dữ liệu Các công cụ xử lý dữ liệu thường nằm trên cùng một máy chủ với dữ liệu nên kết quả xử lý đữ liệu nhanh hơn nhiều Nếu chúng ta đang làm việc với khối dữ liệu lớn phi cấu trúc, Hadoop có thê xử lý hiệu quả mỗi tetabyte dữ liệu chỉ trong vài phút và mỗi petabye trong Vài ĐIỜ
-Khả năng chịu lỗi: Một điểm tuyệt vời của Hadoop nữa là khả năng chịu
lỗi của nó Khi dữ liệu được gửi đến một nút nào đó thì đữ liệu cũng được nhân
rộng đến các node khác trong cluster Vì vậy, trong trường hợp thất bại thì luôn
có một bản sao có sẵn đề sử dụng Kiến trúc của Hadoop cung cấp cơ chế bảo
vệ đữ liệu ở cả duy nhất một node và nhiều node Khi nói đến xử lý dữ liệu một
cách an toàn và chỉ phí hiệu quả Hadoop có lợi thế hơn các hệ thông quản lý cơ
sở dữ liệu quan hệ và giá trị của nó cho một doanh nghiệp sẽ tiếp tục tăng khi
dữ liệu phi cau trúc ngày càng nhiều thêm
Nhược điểm
-Hadoop không có mô hình bảo mật và tính phức tạp cao
-Hadoop không cung cấp lưu trữ hoặc mã hóa dữ liệu mức mạng, trong
khi đây là mối quan tâm rất lớn đối với dữ liệu ứng dụng đối tượng khách hàng
cần độ bảo mật thông tin như chính phủ, ngân hàng
-HDFS không hiệu quả đề xử lý các tap tin no
-MapReduce không thích hợp đề sử dụng các trường hợp có nhu cầu truy
cập đữ liệu thời gian thực
-MapReduce kho biểu diễn đữ liệu đầu ra theo nhu cầu cần sử dụng
Trang 25Lập Trình Song Song GVHD:Nguyén Dinh Lau
CHUONG 2: CAI DAT
L Cai dat MPI
1 Cai dit Visual studio 2022
Bước l:Giải nén
Hors :
‘Se sWucturizr-5s0 14 |-ciagrams Chrome I11MIL Luôcu
{8B PhanTichThietKeDoiTuong (1)
“| Documents #
= Pictures z
{3 PhantichthietXeDoiTuong
Bi tadoop ‘Ge windews_10_cmeke_ Release graphviz-install-6.0 42
I hadoop 2.7.6 (i je-8u351 -windows-x64 at
7 lau 5) Huong dan cai dat Hadoop HDH Windows
)) MapReduceWorc {BB Hadoop bin files
kích chuột phải vào
Visual Studio Setup
{i} Documents VSCodeUserSetup-x64-1.7 2) File description: Visual Studio Insta =
D) Microsoft Teams {BB 29.07.2020-baigiai_lotrinh4| ¢ ‘ompany: Microsoft Corporation N ye
= Pictures BE bai tạo vong lap chuông 5| FÍl 2929.385, 4 PM 23 KB
2 11:15 PM
_ Têp trò chuyên c Last month (8)
we the PC i) 399671-cat black cats-black-daricselactive col G Fi
Bước 2:Vào thư mục đề cài đặt
e > VisualStudio2022
A
Of) VisualStudioSetup.exe 2/8/2022 10:11 AM Application 1,613 KB
Visual Studio Installer
Before you get started, we need to set up a few things so that you can configure your installation
To learn more about privacy, see the Microsoft Privacy Statement
By continuing, you agree to the Microsoft Software License Terms
Trang 26Lập Trình Song Song GVHD:Nguyén Dinh Lau
Bước 3: Bấm double click vao “VisualStudioSetup.exe”, néu co ctra s6
bé nhỏ nào đó hiển thị lên thì bấm “Continue”, sau đó chờ nhé
Visual Studio Installer
Trang 27Lập Trình Song Song GVHD:Nguyễn Đình Lầu
Installing — Visval Studio Commurity 2022 — 17.0.5
Werkloads Individual components Languagepacks - Installation locations
Web & Cloud (4) i
Installation details ASPNET and web development Oo A Azure development Tad NET di lesktop development
@ Build web applications using ASP.NET Core, ASP.NET Azure SDKs, tools, and projects for Sen tact cloud apps P PF
HTMUJavaSeript and Containers including Dacker sup and creating resources using NET and NET Fi ~ Included
¥ .NET desktop development tools
S NET Framework £7.2 development tools
Y C# and Visual Base
Editing, deougging, interactive development and source Build scaleble network applications using Nodejs, an : l ›
convol ferPyben soynchrensue ant-diven lwafclpt roi Na
NET Framework 48 development teals
TG Blend tor Viewal Studio
EZ Entity Framework 6 tools
Mobile development with NET NET desktop developmen
Build cross-platform applications for iOS, Android or Build WPF Windows Farms, and console applications
Windows using Xemar using Ce, Visue! Basic, and F4 with NET end NET Prane
MLNET Model Builder
FR desktop language support
PreEmptive Protection -Dotfuscator
Desktop development with C++ Universal Windows Platform development NET Framework 46.2-47.1 development t Build modern C+ apes for Windows using toos of yo hoirr,incuding MSVC, Clang CMhke, or MSBuád 1B Create applications for Une Universal Windows Platform woth nally Coe INET Rirtetie Ulepey Sempetine sack
Location
CAPregrars File\Micraroft Vauat Studio\022\Community Change
By contang yeu agi tothe en or the Visual Stu eiton you sale i aloe the ability te dewrioad ther tan with Vie Total space required 6.15 GB Studio This software islicenzed separstey, a5 set ovtin the 3rd Party Notices ar in ts accompanying license By coniauts Bien oes ogre lMm se
Install while downlesding + | Install |
i
O trén Tui chon “Desktop development with NET”
OK, nhu vay xem nhu da lva chọn xong, phan nut “Install” & góc phải
phía đưới màn hình đề bắt đầu chờ nó tải và cài đặt (khá lâu tùy vào độ trâu của
Trang 28Lập Trình Song Song GVHD:Nguyén Dinh Lau
Visual Studio Installer
6@ Visual Studio Community 2022 Pause Sere Noe
DJ Visual Studio Build Tools 2019 (2
© Update available
04 Visual Studio Enterprise 2019
© Update available
View detail
Ban thay ở trên đó, nó đang tải, tải xong thì nó sẽ cài hãy chờ trong
niềm hoan hi, chờ đợi trong hạnh phúc vui vẻ không quạ, mặt đã già sẵn rồi,
đừng tạo thêm nếp nhãn vỉ sự quạ nữa
Visual Studio Installer
Trang 29Lập Trình Song Song GVHD:Nguyén Dinh Lau
Chờ nó hoàn tắt
Khi nó ra được màn hình Welcome dưới đây là đã thành công
HH Microsoft Visual Studio
II Cai dat Hadoop
1 Cai dat JDK (Bat Buộc)
SVTH:Nguyên Duy Thang 23 Lép:19CNTTD
Trang 30Lập Trình Song Song
Nư nen hở TY Ee top
€ 2 @ G jdk
VÉ ANH ve ory
Products industries Resources Customers Partners Developers Events Company
GVHD:Nguyén Dinh Lau
WS 286 0AkhuE kAY - 32/08 ĐA otestatEtoororlcieygtviemsteayeetrtsrsrvolcomzroteeetve AT: oy
Solaris SPARC 64-bit (SVR4 package) 125.09 MB nã jdk-8u202-solaris-sparcv9,tat,Z
Windows x64 211.58 MB 4, idk-8u202-windows-x64.exe
Java SE Runtime Environment 8u202
This software is licensed under the Oracle Binary Code License Agreement for Java SE Platform Products
Bam vao link dé tai, chuong trinh xuất hiện như bên dưới:
Products Industries Resources Customers Partners Developers Events Company
Q @ View Accounts i: So Đo
Tick vao “I reviewed and accept the Oracle ”
R6i bam download
Chương trình yêu cầu đăng nhập:
iy Jre-8u202-änux-I586.rpm
SVTH:Nguyén Duy Thang 24 Lép:19CNTTD
Trang 31Lập Trình Song Song GVHD:Nguyén Dinh Lau
Nếu chưa có tài khoản thi ctr dang ky “Create Account”
Khi đăng nhập thành công, Oracle sẽ hỏi nơi lưu trữ file tải:
SVTH:Nguyên Duy Thang 25 Lép:19CNTTD
Trang 32Lập Trình Song Song GVHD:Nguyén Dinh Lau
4ˆ » This PC > DATA (D:) > Hadoop » vy oO Search Hadoop
Organize - New folder ©
Save as type: Application (*.exe)
* Hide Folder Cancel
Ta chọn nơi lưu trữ rồi bam Save
| > This PC > DATA (D:) > Hadoop
Trang 33Lập Trình Song Song GVHD:Nguyén Dinh Lau
Pava SE Development Kit 8 Update 201 (64-bit) - Setup x
Welcome to the Installation Wizard for Java SE Development Kit 8 Update 201
This wizard will guide you through the installation process for the Java SE
Development Kit 8 Update 201
The Java Mission Control profiling and diagnostics tools suite is now available art of the JDK