Chương 2
Chương 2
Công nghệ tính toán
Công nghệ tính toán
phân tán và tính toán
phân tán và tính toán
lưới
lưới
Giảng viên: TS Đàm Quang Hồng Hải
Giảng viên: TS Đàm Quang Hồng Hải
TÍNH TOÁN LƯỚI
TÍNH TOÁN LƯỚI
Tính toán lưới và ứng dụng
Tính toán lưới và ứng dụng
•
Tính toán lưới – hệ thống tính toán phân tán
trên lưới máy tính kết nối thành qua mạng với
một nền tảng phù hợp cho việc chia sẻ tài nguyên
giữa các thành viên của tổ chức ảo
•
Tính toán phân tán là tính toán song song
được phân quyền với nhiều máy tính liên lạc
với nhau qua một mạng để hoàn tất một
nhiệm vụ chung.
•
Hệ thống tính toán phân tán còn tạo nhiều
thuận lợi trong việc chia sẻ thông tin trên toàn
thế giới
Tính toán phân tán và
Tính toán phân tán và
tính toán lưới
(Parallel Programming).
Hiệu năng của hệ thống
Hiệu năng của hệ thống
•
Độ trễ (Latency) và băng thông
(Bandwidth) là 2 tiêu chuẩn để xác định
hiệu năng của một hệ thống máy tính.
– Bandwidth là tốc độ mà dữ liệu có thể đưa vào
từ bộ nhớ đến bộ xử lý - cho biết số lượng phép
tính thực hiện được.
– Latency là thời gian chờ để nhận được dữ liệu
khi dữ liệu đã chuyển đi.
•
Ví dụ: hệ thống có độ trễ là 100 ns. Một
phép toán đòi hỏi phải nạp 1 dữ liệu vào
bộ nhớ sẽ phát sinh độ trể nên tốc độ của
tính toán sẽ bị giới hạn.
Kiến trúc hệ thống song
Kiến trúc hệ thống song
song
song
•
Kiến trúc SIMD - Single Instruction
stream, Multiple Data stream
•
Kiến trúc MIMD - Multiple Instruction
stream, Multiple Data stream
•
Kiến trúc SPMD - Single Program,
Multiple Data
thể (instance) của cùng một chương
trình thực thi trên các dữ liệu khác
nhau.
•
Kiến trúc SPMD có thể diễn đạt bởi
kiến trúc MIMD bằng cách dùng khối
điều khiển if – else với điều kiện
được chỉ định bởi định danh
(identify) của tác vụ.
Kiến trúc chuyển thông điệp
Kiến trúc chuyển thông điệp
•
Về mặt luận lý, platform chuyển thông điệp
(Message-Passing) bao gồm nhiều nút xử lý
(Processing Node), mỗi nút sở hữu một không gian
địa chỉ riêng.
•
Mỗi nút có thể hoặc là một bộ xử lý đơn hoặc đa
xử lý với không gian địa chỉ chung.
•
Xu hướng hiện nay là phát triển máy tính song
song dạng chuyển thông điệp (Message-Passing
Parallel Computer). Clustered Workstation hoặc
Non - Shared – Address Space Multicomputer là
những ví dụ về platform chuyển thông điệp.
• Trên platform này, tương tác giữa các tiến trình
(process) hay tác vụ (task) thực thi trên các nút
khác nhau thông qua việc chuyển các thông điệp.
Mô hình kiến trúc chuyển
Mô hình kiến trúc chuyển
là thơi gian cho một trao đổi đơn
giản của m thông điệp giữa 2 tiến trình trên các nút
khác nhau của mạng. Trong đó,
–
t
s
là độ trễ hay thời gian khởi động để truyền dữ
liệu.
–
t
w
thời gian truyền 1 dữ liệu.
•
Có các giao tiếp cơ bản trên mạng như sau
–
Phát tán (broadcast)
–
Quy hồi (reduce)
–
Phân phát (scatter)
–
Thu thập (gather)
Thao tác phát tán
Thao tác phát tán
•
Đây là hình thức truyền đi, nhằm gửi một thông
điệp đến tất cả các tiến trình đang hoạt động trên
mạng. Thao tác này còn gọi là one-to-all broadcast.
•
Khảo sát bài toán cần phát tán các thông điệp đến
Thao tác quy hồi
Thao tác quy hồi
Thao tác phân phát và thu thập
Thao tác phân phát và thu thập
•
Phân phát là việc gởi từng phần của dữ liệu đến
các tiến trình hoạt động trên mạng. Còn thu thập
là ngược lại của phân phát, nhằm tập hợp các giá
trị riêng từ các thành phần lại.
Môi trường lập trình
Môi trường lập trình
•
Để thực hiện tính toán song song và phân tán
trên hệ thống chuyển thông điệp, cần một số
yếu tố sau đây về phần cứng và phần mềm:
–
Hệ thống gồm nhiều bộ xử lý hoặc máy tính
–
Có mạng để liên kết các các trạm làm việc
–
Phần mềm hệ thống để quản lý và điều khiển việc gọi
từ xa.
•
Hệ điều hành, trình biên dịch
•
Tạo lập cơ chế tạo máy ảo song song hoặc cơ chế
đặc tả chuyển thông điệp.
•
Các hàm API để tạo các giao tiếp trong chương
trình
Hầu hết các ứng dụng song song đều được
cài đặt trên hệ điều hành UNIX như
Solaris, AIX, Linux, ...
•
Bên cạnh đó, môi trường Windows
NT/2000/XP cũng có thể cài đặt các ứng
dụng song song do khả năng xử lý đồng
thời.
Mô hình lập trình phân tán
Mô hình lập trình phân tán
•
Các tiến trình khác nhau được hòa vào
trong một chương trình.
•
Trong khi chương trình thực hiện, các phần
khác nhau sẽ được chọn lựa cho mỗi thực
thể căn cứ giá trị dữ liệu.
•
Trên các hệ thống chuyển thông điệp
thường có hai mô hình lập trình:
–
Mô hình master – slave.
–
Mô hình task – to – task (hay node to node).
•
Trong đó mô hình master – slave là sử thể
hiện của dạng MPMD, còn task – to – task
là dạng SPMD.
Mô hình master-slave
Mô hình master-slave
nó đợi cho đến khi thông điệp được chấp nhận bởi tiến
trình nhận. Hàm nhận đồng bộ sẽ đợi cho đến khi
thông điệp mà nó mong đợi đi đến.
• Thực chất của các hàm đồng bộ là thực hiện hai hành
động: truyền dữ liệu và đồng bộ hóa các tiến trình, nói
cách khác, có sự phối hợp với nhau trong việc gởi và
nhận.
Đồng bộ trong việc gửi và
Đồng bộ trong việc gửi và
nhận
nhận
•
Đôi khi còn dùng thuật ngữ blocking thay cho
thuật ngữ đồng bộ và non-blocking là bất đồng bộ.
Các thành phần của tính
Các thành phần của tính
toán phân tán
toán phân tán
Lập trình Socket
Lập trình Socket
•
Socket là một trong những kỹ thuật cơ bản
nhất trong truyền thông trên mạng máy
tính giữa các tiến trình trên các máy tính
thông qua mạng IP
•
Các tiến trình trên máy truyền và máy
nhận thiết lập một kết nối qua mạng IP
bằng socket theo mô hình Client/Server
•