mà các ứng dụng đang chạy đồng thời trên tất cả chín máy tính. Còn lại
thời gian, các ứng dụng đã phải chạy trên một máy tính duy nhất.
A. Tính tăng tốc hiệu quả trong điều kiện nói trên so
với thực hiện chương trình trên một máy tính duy nhất. Cũng tính toán một tỷ lệ phần trăm của
mã đã được song song (được lập trình hoặc biên soạn để sử dụng các cụm
mode) trong các chương trình trước đó.
B. Giả sử rằng chúng ta có thể sử dụng hiệu quả 17 máy tính hơn là 9 máy tính
trên phần song song của các mã. Tính tăng tốc hiệu quả đó là
đạt được.
17.15 Chương trình FORTRAN sau đây sẽ được thực hiện trên một máy tính, và một song song
phiên bản là để được thực thi trên một cụm 32 máy tính.
L1: DO 10 I = 1, 1024
L2: SUM (I ) = 0
L3: DO 20 J = 1, tôi
L4: 20 SUM (I) = SUM (I) + I
L5: 10 CONTINUE
dòng Giả sử 2 và 4 mỗi mất hai lần chu kỳ máy, bao gồm tất cả các bộ vi xử lý
hoạt động và bộ nhớ truy cập . Bỏ qua các chi phí gây ra bởi phần mềm
báo cáo kiểm soát vòng lặp (dòng 1, 3, 5) và tất cả các hệ thống trên không và các nguồn lực khác
xung đột.
A. Tổng thời gian thực hiện (trong thời gian chu kỳ máy) của chương trình trên là những gì
máy tính duy nhất?
B. Chia lặp I-loop trong số 32 máy như sau: Máy tính 1 thực hiện
32 lần lặp lại đầu tiên (I = 1-32), bộ xử lý 2 thực hiện 32 lần lặp tiếp theo,
và như vậy. Thời gian thực hiện và yếu tố tăng tốc là gì so với
một phần (a)? (Lưu ý rằng khối lượng công việc tính toán, quyết định bởi J-loop, là không cân bằng
giữa các máy tính.)
C. Giải thích làm thế nào để sửa đổi các parallelizing để tạo điều kiện thực hiện song song cân bằng
của tất cả các khối lượng công việc tính toán trên 32 máy tính. Bởi một cân bằng tải có nghĩa là
một số lượng tương đương của những bổ sung cho mỗi máy tính liên quan đến cả với
các vòng lặp.
D. Thời gian thực hiện tối thiểu từ việc thực hiện song song trên là gì
32 máy tính? Tăng tốc kết quả trên một máy tính duy nhất là gì?
17,16 Hãy xem xét hai phiên bản sau đây của một chương trình để thêm hai vectơ:
L1: DO 10 I = 1, N DOALL K = 1, M
L2: A (I) = B (I) + C (I) DO 10 I = L (K - 1) + 1, KL
L3: 10 CONTINUE A (I) = B (I) + C (I)
L4: SUM = 0 10 CONTINUE
L5: DO 20 J = 1, N SUM (K) = 0
L6: SUM = SUM + A (J) DO 20 J = 1, L
L7: 20 CONTINUE SUM (K) = SUM (K) + A (L (K - 1) + J )
20 CONTINUE
ENDALL
a. Các chương trình trên bên trái thực hiện trên một bộ xử lý đơn. Giả sử mỗi dòng mã
L2, L4, L6 và có chu kỳ đồng hồ một bộ xử lý để thực thi. Để đơn giản, bỏ qua
thời gian cần thiết cho các dòng khác của mã. Ban đầu tất cả các mảng đã được nạp
vào bộ nhớ chính và các chương trình mảnh vỡ ngắn trong bộ nhớ cache hướng dẫn. Làm thế nào
nhiều chu kỳ đồng hồ được yêu cầu để thực hiện chương trình này?
KHOẢN 17,9 / KEY, CÂU HỎI ĐÁNH GIÁ VÀ VẤN ĐỀ 663
b. Các chương trình trên phải được viết để thực hiện trên một bộ vi xử lý đa với M.
Chúng tôi phân vùng hoạt động lặp thành phần M với L = N> yếu tố M
cho mỗi phần. DOALL tuyên bố rằng tất cả các phần M được thực hiện song song. Các
kết quả của chương trình này là để sản xuất M tiền một phần. Giả sử k chu kỳ đồng hồ được
cần thiết cho mỗi hoạt động truyền thông interprocessor qua bộ nhớ chia sẻ
và vì vậy việc bổ sung của mỗi tổng một phần đòi hỏi chu kỳ k. Một l cấp
cây bộ cộng nhị phân có thể kết hợp tất cả các khoản tiền một phần, nơi l = log2M. Làm thế nào nhiều
chu kỳ là cần thiết để sản xuất ra số tiền cuối cùng?
C. Giả sử N = 220 phần tử trong mảng và M = 256. Điều gì đang tăng tốc
đạt được bằng cách sử dụng đa? Giả sử k = 200. Tỷ lệ này là gì
của sự tăng tốc lý thuyết của một yếu tố của 256?
đang được dịch, vui lòng đợi..
