Giả sử rằng một ứng dụng song song nhất định sử dụng thiết kế chủ-nô để xử lý một khối lượng công việc lớn. Mỗi khối lượng công việc cần một số chu kỳ để hoàn thành; số lượng chu kỳ mà bất kỳ khối lượng công việc nhất định sẽ thực hiện được đưa ra bởi một biến ngẫu nhiên . Giả sử rằng có khối lượng công việc như vậy và nô lệ tương đương (các nút xử lý). Đương nhiên, một phiên bản chung hơn của câu hỏi này đề cập đến trường hợp nô lệ có khả năng khác nhau, nhưng hiện tại chúng tôi bỏ qua điều này.
Master không thể xử lý khối lượng công việc, nhưng có thể phân phối khối lượng công việc cho các nút tớ và theo dõi tiến trình của các nút tớ. Cụ thể, chủ có thể thực hiện các hành động sau:
- Ngay lập tức bắt đầu xử lý bất kỳ khối lượng công việc trên bất kỳ nút miễn phí nào.
- Ngay lập tức nhận được xác nhận hoàn thành bởi một nút của một khối lượng công việc khởi tạo trước đó .
- Tại bất kỳ thời điểm nào và ngay lập tức, hãy xác định trạng thái của tất cả các nút (miễn phí hoặc bận) cũng như số lượng khối lượng công việc đã hoàn thành và số lượng công việc còn lại.
Để đơn giản, giả sử chia .
Có ít nhất hai loại chiến lược cân bằng tải để giảm thiểu tổng thời gian thực hiện của tất cả các khối lượng công việc bằng cách sử dụng tất cả các nô lệ (để làm rõ, tôi đang nói về thời gian bù giờ hoặc đồng hồ treo tường, không phải là thời gian xử lý tổng hợp, độc lập với chiến lược cân bằng tải đang được sử dụng theo các giả định đơn giản hóa được đưa ra trong câu hỏi này): tĩnh và động. Trong sơ đồ tĩnh, tất cả các quyết định vị trí được thực hiện tại thời điểm . Trong sơ đồ động, chủ có thể đưa ra quyết định vị trí bằng cách sử dụng thông tin về tiến trình được tạo ra bởi một số nô lệ, và do đó, có thể đạt được mức sử dụng tốt hơn (trong thực tế, có các chi phí liên quan đến lập lịch động so với lập lịch tĩnh, nhưng chúng tôi bỏ qua những điều này) Bây giờ cho một số câu hỏi:
- Có cách nào tốt hơn để tĩnh khối lượng công việc kế hoạch hơn là lô chia của khối lượng công việc giữa các nô lệ đồng đều càng tốt (chúng tôi cũng có thể giả định, để đơn giản, đó chia , vì vậy lô có thể được tĩnh lên kế hoạch hoàn toàn đồng đều) ? Nếu vậy thì thế nào?
- Sử dụng chính sách lập lịch tĩnh tốt nhất, độ lệch trung bình và độ lệch chuẩn phải là bao nhiêu cho tổng thời gian thực hiện, xét về giá trị trung bình và độ lệch chuẩn của ?
Một bộ cân bằng tải động đơn giản có thể lên lịch cho các khối lượng công việc cho từng nô lệ ban đầu, và sau đó, khi các nút hoàn thành các lô ban đầu , lên lịch một lô khối lượng công việc bổ sung cho mỗi nô lệ trên cơ sở đến trước được phục vụ trước. Vì vậy, nếu hai nút nô lệ ban đầu được lên lịch 2 lô gồm 2 khối lượng công việc và mỗi nút phụ đầu tiên hoàn thành hai lô của nó, một lô bổ sung được lên lịch cho nô lệ thứ nhất, trong khi nô lệ thứ hai tiếp tục hoạt động. Nếu nô lệ đầu tiên kết thúc đợt mới trước khi đợt thứ hai kết thúc công việc ban đầu, chủ sẽ tiếp tục lên lịch cho nô lệ đầu tiên. Chỉ khi nô lệ thứ hai hoàn thành thực thi công việc của mình, nó mới được cấp một khối lượng công việc mới. Thí dụ:
DYNAMIC STATIC
POLICY POLICY
slave1 slave2 slave1 slave2
------ ------ ------ ------
t<0 -- -- -- --
t<1 batch1 batch3 batch1 batch3
batch2 batch4 batch2 batch4
batch5 batch7
batch6 batch8
t=1 -- batch3 batch5 batch3
batch4 batch6 batch4
batch7
batch8
t<2 batch5 batch3 batch5 batch3
batch4 batch6 batch4
batch7
batch8
t=2 -- batch4 batch6 batch4
batch7
batch8
t<3 batch6 batch4 batch6 batch4
batch7
batch8
t=3 -- -- -- batch7
batch8
t<4 batch7 batch8 -- batch7
batch8
t=4 -- -- -- batch8
t<5 -DONE- -- batch8
t=5 -- --
t < 6 -DONE-
Để làm rõ, các lô 1 và 2 mất 1/2 giây để được xử lý, lô 3 mất 2 giây để được xử lý và các lô 4-8 mất 1 giây mỗi lần được xử lý. Thông tin này không được biết đến a-prori; trong sơ đồ tĩnh, tất cả các công việc được phân phối tại t = 0, trong khi trong sơ đồ động, phân phối có thể tính đến thời gian thực tế của các công việc "hóa ra" là gì. Chúng tôi nhận thấy rằng sơ đồ tĩnh mất nhiều hơn một giây so với sơ đồ động, với Slave1 hoạt động 3 giây và Slave2 hoạt động 5 giây. Trong sơ đồ động, cả hai nô lệ làm việc trong 4 giây đầy đủ.
Bây giờ cho câu hỏi thúc đẩy viết này:
- Sử dụng chính sách cân bằng tải động được mô tả ở trên, độ lệch trung bình và độ lệch chuẩn sẽ là bao nhiêu đối với tổng thời gian thực hiện, theo giá trị trung bình và độ lệch chuẩn của ?
Độc giả quan tâm có sự đảm bảo của tôi rằng đây không phải là bài tập về nhà, mặc dù có lẽ nó không khó hơn nhiều so với những gì người ta có thể mong đợi để làm bài tập về nhà trong các khóa học nhất định. Cho rằng, nếu bất cứ ai phản đối điều này được yêu cầu và yêu cầu tôi thể hiện một số công việc, tôi sẽ vui lòng bắt buộc (mặc dù tôi không biết khi nào tôi sẽ có thời gian trong tương lai gần). Câu hỏi này thực sự dựa trên một số công việc mà tôi chưa bao giờ thực hiện được trong một hoặc hai học kỳ trước, và kết quả thực nghiệm là nơi chúng tôi rời bỏ nó. Cảm ơn sự giúp đỡ và / hoặc nỗ lực, tôi sẽ quan tâm để xem những gì các bạn kết hợp với nhau.