BTL đồng bộ không đồng dạng• Giải thuật – Hoạt động theo đợt, mỗi đợt gồm n vòng... BTL đồng bộ đồng dạng 1• Mô hình – Các bộ xử lý không buộc phải bắt đầu giải thuật cùng nhau – Một bộ
Trang 1Chương 3
BẦU THỦ LĨNH TRÊN VÒNG
( 2 (
Trang 3BTL đồng bộ không đồng dạng
• Giải thuật
– Hoạt động theo đợt, mỗi đợt gồm n vòng.
– Các bộ xử lý cùng bắt đầu giải thuật tại một vòng
– Ở đợt thứ i, bộ xử lý có id là i, nếu tồn tại, gửi một thông báo đi
khắp vòng và trở thành thủ lĩnh
• Các bộ xử lý không có id là i nếu nhận được thông báo thì chuyển
tiếp sang bên cạnh
• Bộ xử lý có id nhỏ nhất sẽ trở thành thủ lĩnh
• Ví dụ
– n = 4 và id nhỏ nhất là 7
• Từ đợt 0 đến 6, không có thông báo nào được gửi
• Ở đầu đợt 7, bộ xử lý có id là 7 gửi thông báo đi khắp vòng
• Độ phức tạp thông báo là O(n) (tối ưu)
• Độ phức tạp thời gian là O(nx), x là id nhỏ nhất
Trang 4BTL đồng bộ đồng dạng (1)
• Mô hình
– Các bộ xử lý không buộc phải bắt đầu giải thuật cùng nhau
– Một bộ xử lý bắt đầu thực hiện giải thuật ở một vòng bất kỳ hoặc
ở vòng đầu tiên nhận được thông báo
• Ý tưởng của giải thuật
– Thông báo gửi từ các bộ xử lý khác nhau sẽ có tốc độ truyền khác nhau
• Thông báo fast: thông báo được chuyển tiếp ngay
• Thông báo slow: thông báo bị làm trễ trước khi chuyển
– Thông báo của bộ xử lý có id càng lớn thì càng bị làm trễ
– Các bộ xử lý nhận được thông báo trước khi bắt đầu giải thuật
sẽ không tham gia bầu thủ lĩnh
• chỉ nuốt hoặc chuyển đi thông báo nhận được
Trang 5BTL đồng bộ đồng dạng
• Giải thuật
– Đầu tiên các bộ xử lý ở trạng thái asleep
– Một số bộ xử lý ngẫu nhiên đổi trạng thái thành active
• Gửi id của nó trong một thông báo fast
– Mỗi bộ xử lý asleep khi nhận được một thông báo thì chuyển sang trạng thái relay
• Nuốt hoặc chuyển tiếp thông báo nhận được
Trang 6BTL đồng bộ đồng dạng (3)
• Giải thuật (tiếp theo)
– Mỗi bộ xử lý active khi nhận được một thông báo
• Nếu là thông báo fast thì sẽ đổi thành thông báo slow
• Nuốt hoặc chuyển tiếp thông báo
– Bộ xử lý nhận lại được thông báo chứa id của chính nó thì sẽ trở thành thủ lĩnh
– Quy tắc nuốt thông báo
• Thông báo sẽ bị nuốt tại một bộ xử lý nếu id trong thông báo > id nhỏ nhất mà bộ xử lý nhận đuợc thông báo đã biết được
– bao gồm id của bộ xử lý nhận được nếu là đó bộ xử lý active – bỏ qua id của bộ xử lý nhận được nếu đó là bộ xử lý relay
– Quy tắc chuyển tiếp thông báo
• Nếu thông báo là fast thì chuyển tiếp ngay
• Nếu thông báo là slow thì làm trễ 2 i - 1 vòng trước khi chuyển tiếp
– i là id của bộ xử lý khởi tạo thông báo
Trang 7Pseudocode (1)
Trang 8Pseudocode (2)
// Với mỗi thông báo (m,h) trong đó m: id của bộ xử lý khởi tạo thông báo,
h:1 nếu là thông báo fast, 2 nếu là slow
Trang 9Phân tích giải thuật đồng dạng (1)
– Phân các thông báo ra làm ba loại
• Loại 1: Các thông báo fast
• Loại 2: Các thông báo slow gửi đi trong khi thông báo của
thủ lĩnh vẫn còn là fast
• Loại 3: Các thông báo slow gửi đi trong khi thông báo của thủ lĩnh đã trở thành slow
Trang 10Phân tích giải thuật đồng dạng (2)
• Số thông báo loại 1
– Không bộ xử lý nào nhận quá một thông báo fast
• Giả sử một bộ xử lý p i nhận được hai thông báo fast, một từ
p k , một từ p j , với p k cách xa p i hơn p j theo chiều kim đồng hồ
• Bộ xử lý p j phải trở thành active trước khi nhận được bất kỳ
thông báo nào
• Để đến được p i , thông báo fast của p k phải đến p j khi p j đang
ở trạng thái active
• Thông báo fast của p k sẽ chuyển thành slow trước khi đến p i
– Tổng số thông báo loại 1 ≤ n
Trang 11• Số thông báo loại 2
– Số bước dịch của thông báo loại 2 có id là i ≤ n/2i
• Thông báo của thủ lĩnh là fast trong ≤ n vòng
• Thông báo slow có id là i cứ 2 i vòng mới dịch chuyển một lần
– Tổng số thông báo loại 2
• Nhiều thông báo nhất khi có các id từ 0 đến n - 1
• Số thông báo loại 3
– Số bước dịch của thông báo loại 3 có id là i ≤ n2x/2i
• Số vòng để thông báo slow của thủ lĩnh có id là x trở về ≤ n2 x
• Sau đó, không có thêm thông báo nào được gửi
– Tổng số thông báo loại 3
• Nhiều thông báo nhất khi có các id từ 0 đến n - 1 (x = 0)
Phân tích giải thuật đồng dạng (3)
n n
n
22
Trang 12Phân tích giải thuật đồng dạng (4)
• Độ phức tạp thông báo là O(n)
– Tổng số thông báo ≤ 4n
• Độ phức tạp thời gian là O(n2x)
– Tổng số vòng ≤ n2x (x là id của thủ lĩnh)
Trang 13BTL dựa trên so sánh
• Tính chất chung của hai giải thuật đồng bộ đã
học
– Sử dụng id để xác định độ trễ thông báo
• Phương cách không chuẩn
– Số vòng thực hiện thỏa đáng phụ thuộc các id
• Các id có thể rất lớn so với n
• Sẽ chứng minh các giải thuật sử dụng id để so
Trang 14Các khái niệm trong BTL dựa trên
so sánh
• Hai vòng R1 = (x1, x2, , xn) và R2 = (y1, y2, , yn) tương đương thứ tự (order equivalent) nếu xi < xj ⇔ yi < yj
• Các bộ xử lý pi trong R1 và pj trong R2 tương ánh
(matching) nếu chúng có cùng khoảng cách từ id nhỏ
nhất
Trang 15– Hai bộ xử lý trong 2 vòng là hoạt động như nhau
(behave the same) nếu ở mỗi vòng
• Bộ xử lý này gửi một thông báo sang trái (phải) ⇔ Bộ xử lý kia gửi một thông báo sang trái (phải)
• Bộ xử lý này thành thủ lĩnh ⇔ Bộ xử lý kia thành thủ lĩnh
– Một giải thuật bầu thủ lĩnh gọi là dựa trên so sánh
(comparison- based) nếu ∀ cặp vòng R1 và R2 tương
đương thứ tự, mọi cặp bộ xử lý tương ánh pi trong R1
và pj trong R2 hoạt động như nhau trong exec(R1) và
exec(R2)
Các khái niệm trong BTL dựa trên
so sánh (2)
Trang 16Cận dưới thông báo (1)
• Định lý
∀ n ≥ 8 là lũy thừa của 2, ∃ một vòng kích thước n sao cho bất
kỳ giải thuật đồng bộ dựa trên so sánh nào thực hiện trên đó cũng gửi Ω(nlogn) thông báo
– Tính số lượng thông báo cần gửi dựa vào số lượng các miền lân cận trong mỗi vòng và số vòng có thông báo gửi đi cần thiết
để thực hiện giải thuật
Trang 17Cận dưới thông báo (2)
– Một vòng kích thước n là cách thưa (spaced ring) nếu ∀ id x
thuộc vòng, các id x - 1 đến x - n không thuộc vòng
• Bổ đề 1
– Nếu vòng R cách thưa và p i và p j có các miền lân cận bán kính k tương đương thứ tự thì p i và p j hoạt động như nhau qua k vòng
tích cực
Trang 18Chứng minh bổ đề 1
• Xây dựng R' sao cho
– Các miền lân cận bán kính k của p j trong R' và p i trong R giống
hệt nhau
– Các id trong R' đôi một khác nhau
– R' tương đương thứ tự với R
– p j trong R' tương ánh với p j trong R
Trang 19Chứng minh bổ đề 1 (tiếp)
• p i trong exec(R) qua k vòng tích cực hoạt động giống p j trong exec(R')
– Vì có cùng miền lân cận bán kính k
• p j trong exec(R') qua k vòng tích cực hoạt động như p j trong exec(R)
– Vì tương ánh với nhau
Vấn đề là làm thế nào để xây dựng được vòng R cách thưa và có các miền lân cận bán kính k tương đương thứ tự ?
Trang 20Xây dựng vòng đối xứng cao
• Xây dựng S n đối xứng cao qua hai bước
– S n là phiên bản cách thưa của R nrev
• Nhân mỗi id trong R nrev lên n + 1 lần rồi cộng thêm n
Trang 21n
Trang 22• Gọi p i là thủ lĩnh được bầu
• Trạng thái của một bộ xử lý chỉ phụ thuộc vào miền lân cận bán kinh T
• Theo bổ đề 2, có nhiều hơn miền lân cận bán kính T tương đương với miền lân cận bán kính T của p i
2 T +
n
1 ) 1 2 (
2 >
+
T n
Trang 23Bổ đề 4 về số thông báo trong vòng
– Ở mỗi vòng tích cực có ≥ 1 bộ xử lý pi gửi 1 thông báo
• Theo bổ đề 2, có ít nhất bộ xử lý có miền lân cận bán
kính k tương đương thứ tự với miền lân cận k của p i
• Theo bổ đề 1, mỗi bộ xử lý đó gửi một thông báo ở vòng tích
cực thứ k
• Tổng số thông báo được gửi trong exec(Sn)
)12
(
2 k +
n
) 1 2 (
n
)log(
1
8
n n
n n
Ω
=
≥+
Trang 24Bài tập số 4
1 Bài tập 3.9 (SGK) Với vòng Rnrev (trong phần chứng
minh định lý Cận dưới thông báo), hãy chứng minh
rằng khi chia Rnrev thành n/j phần đoạn trong đó j là
lũy thừa của 2 thì các phân đoạn kế tiếp độ dài j của Rnrev tương đương thứ tự với nhau