mà ứng dụng đã được chạy đồng thời trên tất cả chín máy tính. Còn lại
thời gian, ứ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. Ngoài ra tính toán, tỷ lệ
mã đã được song song (lập trình hoặc biên soạn để sử dụng cụm
chế độ) trong chương trình trước đó.
b. Giả sử chúng ta có thể sử dụng hiệu quả 17 máy tính chứ không phải 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 hiện trên một cụm 32 máy tính.
L1: DO 10 I = 1, 1024
L2: SUM (tôi ) = 0
L3: DO 20 J = 1, tôi
L4: 20 SUM (I) = SUM (I) + I
L5: 10 TIẾP TỤC
dòng Giả sử 2 và 4 mỗi lần mất hai 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 các 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 lặp lại I-loop trong 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 đến 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 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ằng một cân bằng tải có nghĩa là
một số lượng tương đương bổ sung được gán cho mỗi máy tính đối với cả hai với
vòng.
d. Thời gian thực hiện tối thiểu kết quả 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 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 TIẾP TỤC A (I) = B (I) + C (I)
L4: SUM = 0 10 TIẾP TỤC
L5: DO 20 J = 1, N SUM (K) = 0
L6: SUM = SUM + A (J) DO 20 J = 1, L
L7: 20 TIẾP TỤC SUM (K) = SUM (K) + A (L (K - 1) + J )
20 TIẾP TỤC
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, và L6 có chu kỳ đồng hồ một bộ xử lý để thực hiện. Để đơ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 bên phải là bằng văn bản để thực thi trên một đa với bộ xử lý M.
Chúng tôi phân vùng hoạt động lặp đi lặp thành phần M với L = N> M yếu tố
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 số tiền một phần. Giả sử rằng k chu kỳ đồng hồ được
cần thiết cho mỗi hoạt động truyền thông interprocessor thông qua bộ nhớ chia sẻ
và do đó 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ể hợp nhất 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 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 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..
