SÁNH MÔ HÌNH TRUYỀN THÔNG ĐỒNG BỘ VÀ DỊ BỘ Chuyên Ngành Khoa học máy tính Học phần Xử lí song song CHƯƠNG 1: TRUYỀN THÔNG ĐIỆP 2 1.1. Định nghĩa 2 1.2. Truyền thông điệp trên mô hình ClientServer 2 1.2.1. Truyền thông điệp dị bộ: 2 1.2.2. Truyền thông điệp đồng bộ: 2 CHƯƠNG 2: MÔ HÌNH TRUYỀN THÔNG ĐIỆP. 3 2.1. Tính toán phân tán 3 2.2. Mô hình truyền thông điệp (Message Passing) 3 2.2.1. Mô hình truyền thông điệp đồng bộ 4 2.2.2. Mô hình truyền thông điệp dị bộ 5
Trang 1ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC
- -
TIỂU LUẬN
ĐỀ TÀI: SO SÁNH MÔ HÌNH TRUYỀN THÔNG ĐỒNG BỘ VÀ DỊ BỘ
Chuyên Ngành: Khoa học máy tính
Mã số: 8480101 Học phần: Xử lí song song Giảng viên: TS Nguyễn Hoàng Hà Người thực hiện: Nguyễn Đức Hòa
Thừa Thiên Huế, tháng 12 năm 2021
Trang 2MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG 1: TRUYỀN THÔNG ĐIỆP 2
1.1 Định nghĩa 2
1.2 Truyền thông điệp trên mô hình Client-Server 2
1.2.1 Truyền thông điệp dị bộ: 2
1.2.2 Truyền thông điệp đồng bộ: 2
CHƯƠNG 2: MÔ HÌNH TRUYỀN THÔNG ĐIỆP 3
2.1 Tính toán phân tán 3
2.2 Mô hình truyền thông điệp (Message Passing) 3
2.2.1 Mô hình truyền thông điệp đồng bộ 4
2.2.2 Mô hình truyền thông điệp dị bộ 5
KẾT LUẬN 8
TÀI LIỆU THAM KHẢO 9
Trang 31
MỞ ĐẦU
1 Tính cấp thiết của đề tài
Nhiệm vụ của Công nghệ thông tin là nghiên cứu các mô hình, phương pháp và công nghệ, công cụ hỗ trợ để tạo ra những hệ thống phần mềm giải quyết được những bài toán phức tạp của thực tế Những vấn đề về xử lý ngôn ngữ tự nhiên, tiếng nói, nhận dạng dự báo thời tiết,…đều đòi hỏi phải xử lý dữ liệu với tốc độ rất cao, với khối lượng
dữ liệu rất lớn Mặc dù tốc độ và số lượng các bộ xử lý tăng nhiều trong những năm qua, nhưng do giới hạn về phương diện vật lý nên khả năng tính toán của chúng không thể tăng mãi theo yêu cầu hiện tại, càng không đáp ứng trong tương lai Điều này dẫn tới muốn tăng được khả năng tính toán của các hệ thống máy tính để giải được những bài toán đáp ứng yêu cầu thực tế thì không còn cách nào khác là phải khai thác được những khả năng xử lý song song và phân tán của hệ thống máy tính hiện đại
Mục đích của xử lý song song và phân tán là tận dụng các khả năng tính toán của các hệ đa bộ xử lý, của các máy tính song song để thực hiện những tính toán nhanh hơn trên cơ sở sử dụng nhiều bộ xử lý đồng thời Cùng với tốc độ xử lý nhanh hơn,việc xử
lý song song và phân tán sẽ giải quyết được những bài toán lớn hơn, phức tạp hơn của thực tế
Vấn đề truyền thông trong môi trường tính toán song song và phân tán cũng rất quan trọng trong việc giải quyết những bài toán lớn hơn và phức tạp hơn Trong nội dung bài tiểu luận này xin được trình bày về mô hình truyền thông điệp đồng bộ và dị
bộ
2 Mục tiêu nghiên cứu
Tìm hiểu so sánh mô hình truyền thông đồng bộ và dị bộ
3 Phương pháp nghiên cứu
Tìm hiểu về lý thuyết dựa vào các công trình đăng tải trên các tạp chí có uy tín trong và ngoài nước, các giáo trình, sách tham khảo được xuất bản bởi những nhà xuất bản đáng tin cậy
4 Nội dung nghiên cứu
Tìm hiểu về truyền thông điệp
Tìm hiểu về mô hình truyền thông đồng bộ và dị bộ
5 Cấu trúc tiểu luận
Cấu trúc tiểu luận gồm:
Chương 1: Tìm hiểu về truyền thông điệp Chương 2: Tìm hiểu về mô hình truyền thông điệp
Trang 42
Chương 1: TRUYỀN THÔNG ĐIỆP 1.1 ĐỊNH NGHĨA
Trong khoa học máy tính, truyền thông điệp (tiếng Anh: message passing) là kỹ thuật để gọi hành vi (ví dụ như chạy chương trình) trên máy tính Chương trình gọi sẽ gửi thông điệp tới một quá trình (có thể là tác nhân hay đối tượng) và dựa vào quy trình với cơ sở hạ tầng hỗ trợ để chọn và gọi mã thực sự để chạy Truyền thông điệp khác với lập trình thông thường ở chỗ quá trình, chương trình con, hay hàm được gọi trực tiếp bằng tên Truyền thông điệp là chìa khóa cho một số mô hình lập trình tương tranh và hướng đối tượng
Truyền thông điệp được sử dụng phổ biến trong phần mềm máy tính hiện đại Nó được sử dụng như một cách để các đối tượng tạo nên một chương trình hoạt động với nhau và là phương tiện để các đối tượng và hệ thống chạy trên các máy tính khác nhau (ví dụ trên Internet) tương tác Truyền thông điệp có thể dược hiện thực theo nhiều cơ chế khác nhau, bao gồm các kênh
1.2 TRUYỀN THÔNG ĐIỆP TRÊN MÔ HÌNH CLIENT-SERVER
Đơn vị để xử lý là các tiến trình
Các tiến trình có thể thực hiện trên các bộ xử lý khác nhau
Chỉ có kênh truyền mới có thể chia sẻ cho các tiến trình
Việc truyền thông và đồng bộ hóa các tiến trình được thực hiện qua hai phương thức: send() và receive()
Việc đồng bộ hóa các tiến trình được thực hiện theo cơ chế truyền thông điệp: một tiến trình muốn gửi một thông điệp thì nó phải chờ tiến trình nhận sẵn sàng nhận thông điệp đó và ngược lại
1.2.1 Truyền thông điệp dị bộ:
Một kênh truyền được giả thuyết là có khả năng tiếp nhận không bị giới hạn Tiến trình gửi không cần tiến trình nhận sẵn sàng mà cứ gửi khi có yêu cầu Giao thức UDP thích hợp cho mô hình này
1.2.2 Truyền thông điệp đồng bộ:
Tiến trình gửi bị chặn lại cho đến khi tiến trình nhận sẵn sàng nhận
Sự truyền thông và đồng bộ hóa luôn gắn chặt với nhau
Giao thức TCP thích hợp cho mô hình này
Trang 53
Chương 2: MÔ HÌNH TRUYỀN THÔNG ĐIỆP 2.1 TÍNH TOÁN PHÂN TÁN
Tính toán phân tán là những tính toán được thực hiện trên cơ sở kết hợp tính toán
và truyền thông của hai hay nhiều máy tính trên mạng
Ưu điểm:
- Cho phép chia sẻ dữ liệu được lưu nhiều nhiều máy tính khác nhau (không có
bộ nhớ chia sẻ)
- Chia sẻ với nhau về một số chức năng chính của máy tính
- Độ tin cậy và khả năng thứ lỗi cao hơn Trong trường hợp có một máy tính bị
sự cố thì những - máy tính khác có thể thay thế để hoàn thành nhiệm vụ của hệ thống
- Tính kinh tế: thường đầu tư vào hệ phân tán sẽ thấp hơn đầu tư cho hệ tập trung Nhược điểm:
- Những vấn đề liên quan đến mạng, quản trị hệ thống, định vị tài nguyên, vấn
đề đảm bảo an toàn, an ninh thông tin, v.v không bằng hệ tập trung
- Xử lý trong các hệ thống phân tán không có bộ nhớ chia sẻ để trao đổi dữ liệu với nhau Sự trao đổi được thực hiện bằng cách truyền thông điệp
2.2 MÔ HÌNH TRUYỀN THÔNG ĐIỆP (MESSAGE PASSING)
Các đơn vị XLSS trong mô hình truyền thông điệp là các tiến trình
Các tiến trình có thể thực hiện trên những bộ xử lý khác nhau và không truy cập được vào không gian địa chỉ chia sẻ
Chỉ có kênh truyền là có thể chia sẻ cho các tiến trình, thường đó là LAN hoặc mạng diện rộng
Hiện nay có nhiều công cụ lập trình được sử dụng cho tính toán phân tán ở nhiều mức độ trừu tượng khác nhau, như PVM, MPI, RMI, v.v
Trong các hệ thống phân tán không có bộ nhớ chia sẻ để trao đổi dữ liệu với nhau việc trao đổi được thực hiện bằng cách truyền thông điệp Mô hình Client-Server cũng
có thể sử dụng cơ chế này để cài đặt
Mô hình truyền thông điệp tổng quát
Máy 1 Send( mesage )
Máy 2 receive( mesage )
Trang 64
Socket
Điểm giao tiếp giữa máy tính và mạng
Được dùng để gửi và nhận dữ liệu (có thể cho 1 ứng dụng đọc và ghi trên mạng) Được hỗ trợ bởi nhiều hệ thống và ngôn ngữ lập trình
Sockets và Ports
Cổng là 1 con số nguyên (2 byte)
Một số cổng đã được dành riêng cho các dịch vụ mạng phổ biến: 80 (http), 27 (ftp), …
Khi mở cổng phải sử dụng các cổng chưa được mở: netstat –a
2.2.1 Mô hình truyền thông điệp đồng bộ:
Trong mô hình này, tiến trình gửi bị chặn lại cho đến khi tiến trình nhận sẵn sàng nhận Ở đây, sự truyền thông và đồng bộ hoá luôn gắn chặt với nhau
Hệ thống truyền thông điệp đồng bộ hoàn toàn giống như hệ điện thoại, kênh truyền
bị chặn lại trong quá trình đàm thoại Hệ truyền dị bộ lại giống nhiều hơn với hệ thống bưu chính, người nhận phải chờ cho đến khi có thư được gửi đến
Hầu hết các thư viện lập trình hỗ trợ mô hình truyền thông điệp đồng bộ
Truyền thông điệp đồng bộ: dùng giao thức TCP
Socket
Thông báo
Cổng chấp nhận
socket
Các cổng khác
Trang 75
Ưu điểm: Làm cho nhiều vấn đề trong đồng bộ hoá và việc cấp phát bộ nhớ động trở lên đơn giản hơn
Nhược điểm:
- Việc gắn chặt các tiến trình với thời gian phân phát thông điệp cũng được xem như là điều kiện ràng buộc bổ sung đòi hỏi trong khi thiết kế và thực thi chương trình
- Việc bắt tiến trình gửi phải chờ dẫn đến việc làm giảm tính đồng thời của hệ thống
- Ngoài ra, để cài đặt hiệu quả các hệ thống truyền thông đồng bộ đòi hỏi phải có những phần cứng đặc biệt để đảm bảo rằng sự truyền thông phải cực nhanh và sự trao đổi dữ liệu không ảnh hưởng tới sự tính toán của hệ thống Các mạng truyền thông nhanh
có nhiều nút mạng trao đổi dữ liệu với nhau có chi phí cao
2.2.2 Mô hình truyền thông điệp dị bộ:
Trong mô hình này, một kênh truyền được giả thiết là có khả năng tiếp nhận không
bị giới hạn (bằng cách sử dụng buffer) để tiếp nhận các thông điệp gửi đến cho mỗi tiến trình
Tiến trình gửi sẽ không phải chờ để tiến trình nhận sẵn sàng nhận mà cứ gửi khi
có yêu cầu
Hai tiến trình gửi và nhận có thể hoạt động gần như độc lập nhau và thông điệp có thể nhận được sau một khoảng thời gian nào đó (lâu bất kỳ) kể từ khi nó được gửi đi
Trang 86
Tiến trình nhận thì phải chờ cho đến khi có được thông điệp của một tiến trình khác gửi cho nó
Nhược điểm: không an toàn
Truyền thông điệp dị bộ: dùng giao thức UDP
Một số lưu ý trong mô hình truyền thông dị bộ:
- Khi tiến trình A gửi đi một thông điệp cho tiến trình B thì sau đó nó cần phải được biết xem B có nhận được hay không, nghĩa là A phải chờ để nhận được câu trả lời khẳng định của B Việc phân phát thông điệp cũng không thể đảm bảo rằng không bị thất bại Nếu A gửi đi một thông điệp cho B và A không nhận được câu trả lời từ B thì
nó sẽ không biết là thông điệp đó đã được gửi đến đích B hay chưa? (có thể là tiến trình
B không nhận được hoặc câu trả lời của B không đến được A)
- Tất cả các thông điệp đều phải đưa vào bộ đệm (hàng đợi), nhưng trong thực tế không gian hàng đợi là hữu hạn Khi có quá nhiều thông điệp được gửi đi thì phương thức gửi sẽ bị chặn lại Điều này vi phạm ngữ nghĩa của mô hình truyền thông điệp dị
bộ
Sự khác biệt chính giữa truyền đồng bộ và không đồng bộ
Trong dữ liệu truyền đồng bộ được truyền dưới dạng khung, mặt khác trong Dữ liệu truyền không đồng bộ được truyền 1 byte mỗi lần
Trang 97
Truyền đồng bộ yêu cầu tín hiệu đồng hồ giữa người gửi và người nhận để thông báo cho người nhận về byte mới Trong khi đó, trong người gửi và người nhận truyền không đồng bộ không yêu cầu tín hiệu đồng hồ vì dữ liệu được gửi ở đây có một bit chẵn lẻ được đính kèm với nó cho biết bắt đầu byte mới
Tốc độ truyền dữ liệu của truyền thông không đồng bộ chậm hơn so với truyền thông đồng bộ
Truyền thông không đồng bộ là đơn giản và kinh tế trong khi đó, truyền thông đồng bộ là phức tạp và đắt tiền
Truyền thông đồng bộ là hiệu quả và có chi phí thấp hơn so với truyền thông không đồng bộ
Khoảng cách giữa các dữ
Ví dụ
Phòng trò chuyện, hội nghị truyền hình, hội thoại qua
Trang 108
KẾT LUẬN
Mô hình truyền thông đồng bộ và không đồng bộ đều có những ưu điểm và nhược điểm Không đồng bộ là đơn giản, tiết kiệm và được sử dụng để truyền một lượng nhỏ
dữ liệu trong khi đó, Truyền đồng bộ được sử dụng để truyền phần lớn dữ liệu vì nó hiệu quả Do đó, cả truyền thông đồng bộ và không đồng bộ đều cần thiết cho việc truyền dữ liệu
Thông qua tìm hiểu các kiến thức về mô hình truyền thông đồng bộ và dị bộ trong
xử lý song song và phân tán, qua đó có thể nắm được các nguyên tắc, cấu trúc, cơ chế
và phương pháp truyền thông trong thực hiện song song để phát triển những phần mềm khai thác hiệu quả những khả năng tính toán song song, phân tán của các máy tính hiện đại nhằm giải quyết các bài toán đặt ra trong thực tế
Với sự phát triển của công nghệ thông tin, hệ phân tán và xử lý song song sẽ tiến đến nghiên cứu sâu hơn để có thể áp dụng giải được nhiều bài toán lớn và phức tạp trong thực tế
Trang 119
TÀI LIỆU THAM KHẢO
[1] TS Nguyễn Hoàng Hà – Xử lý song song - Khoa Công nghệ thông tin, ĐHKH, Đại học Huế, 2021
[2] PGS TS Đoàn Văn Ban, TS Nguyễn Mậu Hân - Xử lý song song và phân tán – Nhà xuất bản khoa học và kỹ thuật, 2006
[3] Al Geist, Adam Beguelin, Jack Dongarra, Weichang Jiang, Robert Manchek, Vaidy Sunderam - PVM: Parallel Virtual Machine A User’s Guide and Tutorial for Networked Parallel Computing/, - London: The MIT Press, 1995
[4] Barry Wilkingson, Michael Allen – Parallel Programming, Technigues and Applications Using Networked Workstations and Parallel Computers / Prentice Hall New Jersey, 1999
[5] http://www.csm.ornl.gov/pvm/
[6] http://www.netlib.org/pvm3/book/pvm3-book.html
[7] http://www.ontko.com/pub/rayo/cs40/pvm.html
[8] http://www.parallels.com