1. Trang chủ
  2. » Công Nghệ Thông Tin

thuật toán Carier null message

11 152 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 11
Dung lượng 360,62 KB

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

Nội dung

Trình tự các nhãn thời gian trên thông điệp được gửi qua bất kỳ liên kết nhất định nào trong mạng mô phỏng luôn luôn là một chuỗi các giá trị không tăng.. Khả năng dự đoán có nghĩa là ch

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐÀO TẠO SAU ĐẠI HỌC

──────── * ────────

TIỂU LUẬN CÁC KỸ THUẬT HIỆN ĐẠI TRONG CNNT

ĐỀ TÀI: Tìm hiểu về Carier-Null Message Algorithm

Giảng Viên : GVC-TS Phạm Đăng Hải

Học Viên thực hiện : Nguyễn Văn Vơn – CB160546

Lớp : CNTT-2016B

Hà Nội 09/2017

Trang 2

I, Tổng Quan

Sự mô phỏng sự kiện rời rạc được xem như một thành phần cho quá trình xử lý song song, kể từ khi hệ thống vật lý được mô phỏng có thể được phân tách thành một số tiến trình vật lý lỏng lẻo (PPs) và sau đó có thể được mô phỏng bởi một số quá trình hợp lý Các tiến trình logic (LP) chạy trên mạng bộ xử lý Mỗi tiến trình logic chứa một phần của trang thái tương ứng với tiến trình vật

lý của chính mô hình đó, và duy trì một đồng hồ địa phương của nó để thấy rằng

nó đã được xử lý như thế nào trong quá trình mô phỏng quá trình xử lý của một LP phụ thuộc vào sự thay đổi trang thái của tiến trình vật lý và cũng có thể gây ra một sự thay đổi của trạng thái ở một số các tiến trình vật lý khác Để mô hình hóa sự tương tác giữa các PPs , thông điệp nhẵn thời gian được truyền giữa các tiến trình logic Bên cạnh đó một bộ mô phỏng được xây dựng bởi LPs và các liên kết message-passing

Sự song song trực quan trong hệ thống vật lý có vẻ như tự động chuyển đổi trở nên đồng thời về mặt tính toán Tuy nhiên, sự phát hiện này về sự song song trong mô phỏng sự kiện rời rạc là khó nắm bắt vì các khía cạnh thời gian của

mô phỏng không thể dễ dàng được ánh xạ tới các máy tính song song Để đảm bảo tính chính xác của mô phỏng điều đầu tiên phải đảm bảo rằng tất cả Các LP tuân theo các ràng buộc nhân quả tại địa phương, một LP phải xử lý các sự kiện trong trật tự về nhãn thời gian (timestamp) Kể từ khi các tiến trình logic được được thực hiên song song , thời gian nội bộ của các tiến trinh logic có thể tang lên không đồng bộ , các giao thức đồng bộ hóa thời gian phải được khai thác Trong mô phỏng sự kiện rời rạc song song, sự xuất hiện của bất cứ quan hệ nhân quả lỗi tại nội bộ có thể tránh khỏi Trình tự các nhãn thời gian trên thông điệp được gửi qua bất kỳ liên kết nhất định nào trong mạng mô phỏng luôn luôn

là một chuỗi các giá trị không tăng Và một LP không thể xử lý sự kiện E với nhãn thời gian T trừ khi nó có thể xác định rằng không thể nhận được một sự kiện khác với nhãn thời gian nhỏ hơn t Vì vậy xử lý một sự kiện sẽ không muộn hơn kết quả của sự vi phạm các ràng buộc nhân quả ở địa phương Khi chúng không thể đưa ra quyết định, LPs bị chặn Bên cạch đó, với hàng đợi đầu vào, deadlocks có thể xảy ra ngay cả trong một chu trình mô phỏng mạng Để

có thể giải quyết bài toán deadlock : deadlock avoidance , CMB algorithm hereafter, deadlock recovery và các giải thuật đã được công bố

Như đã được chỉ ra bởi các phân tích hiệu suất trước đó các thuật toán thận trọng hiếm khi có thể đạt được tốc độ tăng tốc trong mô phỏng trong việc nỗ lực phòng tránh và giải quyết deadlocks

Trang 3

Hình 1:

Số trên liên kết biểu diễn giá trị của link-clock Hình 1 (a) LP0 không thể xử lý thông điệp từ nguồn, bởi vì link-clock của tiến trình khác đến (i.e.,0) ít hoen nhãn thời gian (i.e.,5) Như vậy một vòng lặp phụ thuộc (WD loop) được phát sinh : LP0 đang đợi LP2 để gửi thông điệp , trong khi LP2 đang chờ nhận thông điệp từ LP1, và LP1 đang chờ nhận thông điệp từ LP0 Deadlock gây ra Trong hinh 1 (b), chúng tôi cho rằng chỉ có một bộ đệm được kết hợp với mỗi liên kết

Do đó, deadlock sẽ gây ra nếu LP0 tiếp tục gửi thông điệp tới LP1 và từ chối LP2 Như trong hình 1 (a), LP3 không thể xử lý thông điệp từ LP1, và đàng chờ LP2 để gửi một thông điệp Bởi vì chỉ có một bộ đệm cho đầu đầu vào liên kết , LP3 không thể nhận bất cứ thông điệp nào từ LP1 Bên cạnh đó, LP1 bị chặn bởi vì việc gửi một thông điệp một vòng lặp đợi được hình thành : LP3 dang đợi để nhận thông điệp từ LP2 , LP2 đang đợi để nhận từ LP0 , trong khi LP0 đang đợi để gửi một thông điệp đến LP1, và LP1 đang đợi để gửi đến LP3 Deadlock gây ra

Bài báo này có cấu trúc như sau: đầu tiên Thuật toán CMB được giới thiệu Sau

đó đưa ra đề xuất thuật toán, giải thuật carier-null message được phác thảo Thuật toán carier-null message đưa ra null-message được đề xuất trong giải thuật CMB, cũng như lý thuyết về giao thức thông điệp và carier-null message

để tránh các deadblock trong quá trình mô phỏng Lookahead có thể được tăng lên những nơi mà nó có thể tăng bằng cách tìm kiếm mô hình của mô phỏng mạng sử dụng giải thuật carrier-null message Giải thích trực tiếp và chính xác chứng minh của thuật toán được đề xuất cho thấy cách các thuật toán hoạt động

và liệu các thuật toán có hoạt động chính xác hay không Cuối cùng là phân tích, liên hệ các vấn đề đã trình bày và rút ra các kết luận

Trang 4

II, Giải thuật CMB

Trong khuôn khổ bài viết này, chúng ta giả thiết rằng hệ thống vật lý được mô hình hóa có khả năng nhận xét và dự đoán

Khái niệm 1: Khả năng nhận xét có nghĩa là 1 thông điệp được gửi bởi 1 PP

tại thời điểm t là một chức năng của trạng thái ban đầu, tại thời diểm t, các thông điệp đó đã nhận được nhận chứa và có chưa t Khả năng dự đoán có nghĩa là cho mỗi một chu trình (một tập hợp các PP0, …, PPn-1, trong đó PPi gửi thông điệp đến PPi+1 và PPn-1 gửi thông điệp đến PP0) và t, có một PP trong chu trình có thể xác định thông điệp được gửi đi cho đến thời điểm t + & (&>0) , dựa trên các thông điệp nó nhận được cho đến thời điểm t.

Khả năng nhận xét và dự đoán đều rất quan trọng đối với giải thuật CMB

Cấu trúc của mỗi LP trong giải thuật CMB được mô tả ở (hình 2) Một LP bao gồm nhiều hang đợi FIFO: chúng nhập vào và tạo ra các thông điệp hàng đợi, tương ứng với các kết nối vào và ra Giá trị link-clock của một liên kết tới được định nghĩa như timestemp của thông điệp đầu tiên trong hàng đợi kết nối đến liên kết đó Nếu như hàng đợi trống thì nhãn thời gian của thông điệp cuối cùng được xóa khỏi hàng đợi Giá trị link-clock của liên kết ra được định nghĩa như timestemp của thông điệp cuối cùng trong hàng đợi ra Nếu hàng đợi trống thì

nó là nhãn thời gian của thông điệp cuối cùng được đặt tại hàng đợi Với mỗi LPi, chúng ta có :

Trong đó Tki là giá trị thời gian của kết nối vào (k, i) Điều này đưa ra một rang buộc thấp hơn về nhãn thời gian của bất kì thông điệp nào mà Lpi có thể nhận được trong tương lai Thông điệp với nhãn thời gian bằng với Tini sẽ được xử lý ngay lập tức, vì sẽ không có thông điệp nào được gửi đến với nhãn thời gian nhỏ hơn Tini Tuy nhiên, các thông điệp với nhãn thời gian lớn hơn Tini sẽ không được xử lý vì chúng có thể bị chiếm chỗ bởi các thông điệp có nhãn thời gian nhỏ hơn Do đó, trong tình huống:

Hàng đợi vào của kết nối (k, i) rỗng, với tất cả kết nối (k, i) của T ki = T ini

Trang 5

Hình 2: LPi trong giải thuật CMB

LPi bị chặn cho đến khi có ít nhất một thông điệp trong hàng đợi vào của mỗi kết nối Deadblock xuất hiện (xem hình 2) Bất kỳ thông điệp nào được tạo ra

trong quá trình xử lý đều được đưa vào event pool.

Một LP sẽ không đẩy một thông điệp có nhãn thời gian ra hàng đợi ra cho đến khi nó đảm bảo rằng không có thông điệp mới nào được gửi đến liên kết với một nhãn thời gian nhỏ hơn Điều này có thể được tính toán bằng giá trị

lookahead L của LP Như đã đề cập, lookahead chỉ ra rằng nếu một LP xử lý một thông điệp có nhãn thời gian t, nhãn thời gian của thông điệp mới được tạo

ra không thể bé hơn t + L Ví dụ như, trong mạng mô phỏng hàng đợi mạng, giá trị lookahead có thể coi như thời gian phục vụ ngắn nhất Do đó, LPi có thể suy đoán tất cả các thông điệp được chuyển đi qua kết nối ra (i, j) cho tới thời điểm

T out i :

Vì vậy, nếu một thông điệp được gửi đến LPj, có nhãn thời gian nhỏ hơn T out i ,

có thể được lấy từ event pool và đẩy vào hàng đợi ra của liên kết (i, j) Nếu

không, nó sẽ được lưu tại đó đến khi T out i lớn hơn nhãn thời gian của nó

Deadlock trong giải thuật CMB được tránh bằng cách gửi đi các null message, thông báo sự vắng mặt của thông điệp Khi nhận được null message, một LP biết nó sẽ không nhận được các thông điệp thật sự tù kết nối vào cho đến khi được gắn nhẵn thời gian trên null message Việc xử lý null message chỉ đơn giản là khởi tạo lại giá trị link-clock trên kết nối vào Sự vắng mặt của thông điệp thật sự trong hệ thống vật lý tại thời điểm t có thể nhận ra bằng sự kiện không có thông điệp nào được truyền đi vào thời điểm đó Vì vậy, đối với kết

Trang 6

nối ra (i, j), nếu có một thông điệp trong event pool có thể gửi đi, thì như đã mô

tả ở trên, LPi sẽ đưa thông điệp này tới hàng đợi ra của kết nối (i, j) Ngược lại,

nếu giá trị T ij nhỏ hơn T out i , LPi sẽ gửi một null message có nhãn T out i tới hàng

đơi ra, thông báo sự vắng mặt của thông điệp thật sự cho tới thời điểm T out i

Từ khi null message được sử dụng để tăng thời gian trong mô phỏng, nhận (hoặc gửi) một null message từ hàng đơi vào (hoặc hàng đợi ra) có thể xóa bất

kỳ null message nào trước realizability trong hàng đơi Bởi vì khả năng thực hiện của hệ thống vật lý, L có thể được tính toán bởi một hàm thời gian t và lich

sử mô phỏng bởi/ LP Và do khả năng suy đoán của hệ thống vật lý, L chắc chắn lớn hơn 0 Do đó, thời gian mô phỏng của LP sẽ tăng dần Deadlock trong mô phỏng phân tán được tránh khỏi

Thuật toán:

While Ti < [thời điểm kết thúc] Do

(1) Input

Xóa các thông điệp từ hàng đợi nếu nhãn thời gian bằng T in i

(2) Computation 1

Cập nhật link-lock trên kết nối vào;

Tính T in i dựa theo biểu thức 1;

Tính T out i dựa theo biểu thức 2

(3) Simulation

Thực hiện các hoạt động mô phỏng tương ứng;

Đưa các thông điệp với nhãn thời gian được tạo ra vào event pool

(4) Output

Xóa các thông điệp từ event pool nếu nhãn thời gian nhỏ hơn T out i ; Đẩy các thông điệp đến hàng đợi ra tương ứng;

Đẩy các null message đến các hàng đợi ra còn lại nếu an toàn

(5) Computation 2

Tính link-clock của kết nối ra;

Khởi tạo lại thời gian Ti dựa theo biểu thức 3

Link-clock của kết nối vào (hoặc ra) sẽ được cập nhật sau khi một thông điệp được xóa đi từ hàng đợi vào hoặc ra tương ứng Thời gian mô phỏng của mỗi LPi được định nghĩa như sau:

Trang 7

Trong đó, Tki là giá trị của kết nối vào, Tij là giá trị của kết nối ra Tóm lại, giải thuật CMB bao gồm 5 bước tuần tự được lặp đi lặp lại bằng việc mô phỏng công việc của từng LPi cho đến thời điểm kết thúc

Vì bế tắc trong mô phỏng song song thường sinh ra bởi các vòng lặp phản hồi trong mạng mô phỏng, để phá vỡ deadblock, thường có một số lượng khổng lồ các null message được gửi đi theo vòng lặp Tuy nhiên, trong một số trường hợp, một LP cần phải không bị chặn nếu phản hồi lặp được phát hiện Ví dụ như (a) của hình 1, LP2 sẽ không gửi đi thông điệp nào cho đến khi LP0 gửi một thông điệp đến LP1 Vì LP0 không cần đợi từ LP2, nó có thể xử lý thông điệp thật đầu tiên từ nguồn mà không cần quan tâm đến việc có thể xuất hiện một thông điệp từ LP2 có nhãn thời gian nhỏ hơn Với ý tưởng này, chúng tôi phát triển một giải thuật mới để phát hiện các vòng lặp phản hồi trong quá trình mô phỏng, và để tăng giá trị lookahead của mô phỏng cho đến khi phát hiện ra vòng lặp phản hồi Việc phát hiện vòng lặp phản hồi và tăng giá trị lookahead tạo ra một giao thức thông điệp đặc biệt là carrier-null message

III, The Carrier Null Message Algorithm

Tương tự như thuật toán CMB, Thuật toán carrier-null message cũng bao gồm các bước tuần tự : Input, Simulation, Computation 1, Output và Computation 2 Tuy nhiên cúng ta chỉ tập chung vào việc giới thiệu carrier-null message nó hoạt động khác với giải thuật CMB trong các bước: Simulation và Output steps

Khái niệm 2: Một Carrier-Null Message (t, route.inf , carier.null) được sử

dụng để thông báo sự vắng mặt của các thông điệp thực sự trong một hệ thống vật lý tại thời điểm t (theo cách tương tự như một null-message) t là nhãn thời gian của thông điệp đó route.inf là thông tin tuyến đường, la.inf là thông tin lookahead

Như một null-message, một Carrier-Null Message là một giao thức thông điệp Xoá chúng sẽ không gây ra bất kỳ thay đổi nào trong hành vi mô phỏng Bên cạnh đó , một carier-null message (t’,

route.inf’,carier.null) có thể để trống trước bất kỳ null-message trước

đó và các carier-null message với route.inf bằng với route.inf’trong hàng đơi vào và ra.

* Bước mô phỏng:

Trang 8

Hình 3: Quy trình xử lý thông điệp trong bước mô phỏng

Trong bước này, nếu thông điệp được gỡ bỏ từ hàng đợi đầu vào là một thông điệp thực sự tương tự như thuật toán CMB, một số hoạt động mô phỏng sẽ được tiến hành theo các đặc tả mô phỏng và thông tin trạng thái thu thập được cho đến thời điểm hiện tại Nếu có bất kỳ thông điệp thực nào được tạo ra chúng được đặt vào event pool Thêm vào đó trong thuật toán của chúng tôi, LPi có thể tạo ra hoặc đi qua một carier-null message dựa trên giao thức xử lý thông điệp Chúng tôi định nghĩa nexti nhứ một tập các kết nối cái mà đầu vào input mang theo :

Trong đó old.Tini là giá trị của Tini trươc khi nó được thay dổi trong bước Computation 1 Phân chia thành ba tập con s1,s2 và s3 dựa trên thông điệp Mik được xóa khỏi liên kết hàng đợi đầu vào (k,i)

Trang 9

* Bước đầu ra :

Hình 4: Thuật toán bước đầu ra Trong bước này các thông điệp có thể sẽ được đặt trong hàng đợi đầu ra được xác định Nếu một thông điệp thật có thể được lấy từ event pool thì cũng giống với giải thuật CMB , các thông số (t,real.message) được đặt trong hàng đợi đầu

ra của liên kết (i,j) hoặc sẽ có hai trường hợp :

1, một carier-null message (0, route.inf, carrier.null) được tìm thấy trong event pool Có ba trường hợp con như sau :

1.1, nếu la.inf là bé hơn hoặc bằng Tout , nó là không cần thiết tiếp tục gửi carrier-null message bởi vì lookahead sẽ không thể cải thiện được Thay vì một null-message thường với nhãn thời gian bằng với Touti có thể được đặt trong hàng đợi đầu ra của liên kết (i,j)

1.2, nếu la.inf là lớn Touti, và LPi phát hiện ra dự đời chờ phụ thuộc by sự tìm kiếm bộ định danh của nó trong route.inf, một dự đoán về hành vi trong tương lai sẽ được tạo ra Nếu link-clock Tij bé hơn la.inf, LPi sẽ được đặt trên một null-message thường với nahxn thời gian bằng vớ la.inf ( thay vì Touti) trong hàng đợi đầu ra

Trang 10

1.3, nếu la.inf lớn hơn T outi và LPi không nằm trong route.inf, carier-null message có thể đặt trong hàng đợi ra của liên kết (i,j), cái mà nhãn thời gian bằng với Touti

2, không có carrier-null message trong event pool Trong trường hợp này , phụ thuộc vào giá trị của Tij , một null-message thường có thể dễ dàng đượ đặt trên hàng đợi đầu ra với nhãn thời gian bằng với T outi, biết rằng không có thông điệp thật nào được truyền trong khoảng thời gian ( Tij , T outi )

IV, Giải thích trực quan và các ví dụ thực tế:

Hinh 5: Mô phỏng mạng cho thuật toán Carrier Null Message

- LP1 và LP0 trong hình 5 là các nguồn tiến trình LP0 gửi hai thông điệp thật đầu tiên tới LP1 tại thời điêmt 30 và 60 và LP’ gửi hai thông điệp đầu tiên tới LP4 tại thời điểm 20 và 40

- LP2 sẽ gửi bất cứ thông điệp nhận được tới LP3

- Thời gian xử lý thông điệp, mỗi thông điệp thật và giao thức thông điệp là môt thời điểm cho tới khi mỗi LP được coi như lookahead giá trị L

Để phát hiện vòng lặp chờ phụ thuộc, trong bước 2 (xem bảng 1) LP1 và LP4 sẽ gửi ra carrier-null message thay vì các null-message Các carrier-null message được cập nhật trong bước 3 và 4 trong khi chúng được truyền trong mạng Trong bước 5, LP1 và LP4 phát hiện vòng lặp chờ phụ thuộc, sau đó chúng gửi

ra các null-message được đánh nhãn thời gian với thông tin lookahead trên các carrier-null message được nhận

Ngày đăng: 25/09/2017, 15:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w