Tải bản đầy đủ (.pptx) (17 trang)

Slide tên đề tài designing and evaluating an IO system—the internet archive cluster

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.28 MB, 17 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TIỂU LUẬN MÔN: KiẾN TRÚC MÁY TÍNH TIÊN TiẾN
Designing and Evaluating an I/O System
—The Internet Archive Cluster
Giáo viên: TS.Nguyễn Hồng Quang
Họ và tên học viên:
Nguyễn Văn Tuân - SHHV : CA120633 ;
Chuyên ngành : Công nghệ thông tin Lớp: CNTT-HY CH2012A
Hưng Yên, tháng 08/2012
NỘI DUNG
1. Cơ bản phần cứng nguyên thủy
2. Thực hiện khóa sử dụng phù hợp
3. Thử hiệu suất đồng bộ hóa
4. Đồng bộ hóa cho các đa xử lý quy mô lớn hơn
1. Cơ Bản Phần Cứng Nguyên Thủy
Là các khối xây dựng cơ bản được sử dụng để xây dựng một tập rộng của hoạt động đồng bộ hóa người dung, bao
gồm tất cả các thứ như ổ khóa và các rào cản.
Một điển hình hoạt động để xây dựng các hoạt động đồng bộ hóa là trao đổi nguyên tử, giao một giá trị trong một sổ đăng ký
cho một giá trị trong bộ nhớ.
Các cặp hướng dẫn bao gồm một tải trọng đặc biệt gọi là một tải trọng liên kết hoặc tải bị khóa và bộ lưu trữ đặc biệt được
gọi là một bộ lưu trữ có điều kiện.
Các cặp hướng dẫn bao gồm một tải trọng đặc biệt gọi là một tải trọng liên kết hoặc tải bị khóa và bộ lưu trữ đặc
biệt được gọi là một bộ lưu trữ có điều kiện. Những hướng dẫn này được sử dụng theo thứ tự: Nếu nội dung của
vị trí bộ nhớ được chỉ định bởi tải trọng liên kết được thay đổi trước khi các bộ lưu trữ có điều kiện đến cùng một
địa chỉ xảy ra, sau đó các cửa bộ lưu trữ không có điều kiện. Nếu bộ xử lý hiện một bối cảnh chuyển đổi giữa hai-
structions, sau đó các bọ lưu trữ có điều kiện cũng không thành công. Các bộ lưu trữ có điều kiện được định nghĩa
để trả về một giá trị có hay không các bộ lưu trữ đã thành công. Kể từ khi tải liên kết trả về giá trị ban đầu và các bộ
lưu trữ có điều kiện trả về 1 nếu nó thành công và 0 nếu ngược lại, trình tự sau đây thực hiện một cuộc trao đổi
nguyên tử vào vị trí bộ nhớ quy định các nội dung của R1
2.Thực hiện khóa sử dụng phù hợp


Một khi chúng ta có một hoạt động nguyên tử, chúng ta có thể sử dụng các cơ chế đa gắn kết để
thực hiện các ổ khóa quay: ổ khóa mà một bộ xử lý liên tục cố gắng để có được, quay xung quanh một
vòng lặp cho đến khi nó thành công
Nếu hỗ trợ sự đa gắn kết bộ nhớ cache, có thể bộ nhớ cache ổ khóa bằng cách sử dụng cơ chế
gắn kết để duy trì giá trị khóa mạch lạc. Ổ khóa bộ nhớ đệm có hai lợi thế. Đầu tiên, nó cho phép
thực hiện quá trình "quay" (cố gắng để kiểm tra và có được khóa chặt trong một vòng lặp) có thể
được thực hiện trên một bản sao lưu trữ địa phương hơn là đòi hỏi một bộ nhớ truy cập toàn cầu
trên mỗi cố gắng để có được khóa.
Ưu điểm thứ hai đến từ sự quan sát thường có địa phương truy cập khóa: đó là, bộ xử lý sử dụng các khóa cuối cùng sẽ sử
dụng nó một lần nữa trong tương lai gần. Trong những trường hợp như vậy, giá trị khóa có thể cư trú trong bộ nhớ cache
của bộ xử lý, giúp giảm thiểu thời gian để có được khóa.
3. Thử hiệu suất đồng bộ hóa
Hình 1.2
Hình 1.2 Thời gian để tiếp thu và phát hành một khóa duy nhất 10 bộ vi xử lý tranh cho khóa, giả sử mỗi giao
dịch đường dẫn có 100 chu kỳ đồng hồ. Gây ra trọng tài Bus công bằng, bộ vi xử lý phát hành phải chờ đợi cho tất
cả 9 Proces-sors cố gắng để có được các khóa vô ích!.
Hình này còn cho thấy trình tự các sự kiện từ thời điểm, thời gian phát hành để phát hành kế tiếp. Tất nhiên, số
lượng các bộ vi xử lý, chăm sóc con cho khóa giảm một thời gian mỗi khóa được mua lại, tái duces chi phí trung
bình 1.550 chu kỳ. Vì vậy, trong 10 cặp khóa, mở khóa, nó sẽ mất hơn 15.000 chu kỳ cho các bộ vi xử lý để vượt
qua thông qua các khóa. Fur-thermore, bộ xử lý trung bình sẽ dành một nửa thời gian nhàn rỗi này, chỉ cần thử
để có được khóa.
Rào chắn đồng bộ:
Một bổ sung hoạt động đồng bộ hóa phổ biến trong các chương trình với các vòng song song là một
rào cản. Một rào cản buộc tất cả các quy trình để chờ đợi cho đến khi tất cả các quá trình đạt đến ngưỡng và
sau đó phát hành tất cả các quá trình. Một thực hiện điển hình của một rào cản có thể được thực hiện với hai
ổ khóa quay: một được sử dụng để bảo vệ truy cập mà trả khớp quá trình đến hàng rào và một sử dụng để giữ
quá trình un-til quá trình cuối cùng đến hàng rào
Trên đây là một thực hiện điển hình, giả định rằng khóa và mở khóa cung cấp ổ khóa quay cơ bản và tổng số là
số lượng các quá trình phải đạt đến ngưỡng đó.
Trong thực tế, biến chứng khác làm cho rào cản thực hiện hơi phức tạp hơn. Thường xuyên hàng rào được

sử dụng trong một vòng lặp, do đó quá trình phát hành từ rào cản sẽ làm một số công việc và sau đó đạt đến
ngưỡng đó một lần nữa. Giả sử rằng một trong các quá trình không bao giờ thực sự rời khỏi rào cản, mà có
thể xảy ra nếu hệ điều hành lên kế hoạch một quá trình khác.
Đồng bộ hóa hiệu suất có thể là một nút cổ chai thực sự khi có tranh đáng kể trong nhiều quy trình.
Khi có chút ganh đua và hoạt động đồng bộ hóa không thường xuyên, chúng tôi chủ yếu quan tâm về độ trễ
của một đồng bộ hóa nguyên thủy đó là, phải mất bao lâu một quá trình cá nhân để hoàn thành một hoạt
động đồng bộ hóa. Hoạt động spin-khóa cơ bản của chúng tôi có thể làm điều này trong hai chu kỳ bus: một
bước đầu đọc khóa và một để viết nó. Chúng ta có thể cải thiện một chu kỳ bus duy nhất bằng một thay đôie
các phương pháp.
4.Đồng bộ hóa các đa xử lý lớn hơn
4.1 Cài đặt phần mềm
Khó khăn lớn nhất với việc thực hiện quay khóa của chúng tôi là sự chậm trễ do vỏ bảo vệ khi quá trình quay
vào khóa. Một giải pháp là quá trình chậm trễ móng biệt khi họ không có được khóa. Hiệu suất tốt nhất thu
được bằng cách tăng chậm trễ theo cấp số nhân bất cứ khi nào cố gắng để có được các khóa không. Việc thực
hiện này vẫn cố gắng để duy trì độ trễ thấp khi tranh nhỏ bằng cách không trì hoãn các vòng lặp quay ban đầu.
Cũng có thể trì hoãn quá trình đó, nhưng kết quả sẽ là ít thực hiện khi khóa là chỉ có hai quá trình sử dụng và
một trong những đầu tiên đã xảy ra để tìm thấy nó đã bị khóa.
Một kỹ thuật thực hiện cho các ổ khóa là sử dụng ổ khóa xếp hàng. Hàng đợi khóa làm việc bằng cách xây
dựng một danh sách các bộ vi xử lý chờ đợi, bất cứ khi nào một bộ xử lý sẽ giải phóng các khóa, nó gây ra các
bộ vi xử lý tiếp theo trong hàng đợi để cố gắng truy cập. Điều này giúp loại bỏ ganh đua cho một khóa khi nó
được giải phóng. Cách xếp hàng vận hành khóa trong phần tiếp theo bằng cách sử dụng một phần cứng.
4.2 Phần cứng ban đầu
Trong phần này chúng ta nhìn vào hai nguyên thủy đồng bộ hóa phần cứng. Các nguyên thủy đầu tiên giao dịch
với các ổ khóa, trong khi thứ hai là hữu ích cho các rào cản và một số hoạt động khác người sử dụng cấp đòi hỏi
phải tính hoặc cung cấp các chỉ số khác biệt.
Vấn đề chính với việc thực hiện khóa ban đầu là giới thiệu một số lượng lớn tranh không cần thiết. Ví dụ, khi
khóa được phát hành tất cả các bộ xử lý tạo ra cả hai đọc và viết một lỡ, mặc dù nhiều nhất một Proces-Sor thành
công có thể có được khóa ở trạng thái mở khóa. Trình tự này xảy ra trong số 20 trình tự khóa / mở khóa
Có thể cải thiện tình trạng này bằng một cách trao khóa từ bộ xử lý chờ đợi tiếp theo. Thay vì chỉ đơn giản là cho
phép tất cả các bộ xử lý để cạnh tranh phát hiện phần cứng thời gian khóa được phát hành, giữ một danh sách

của các bộ vi xử lý chờ đợi và khóa tay một cách rõ ràng, khi lần lượt của nó đến. Sắp xếp của cơ chế này đã được
gọi là một khóa xếp hàng.
Làm thế nào để một khóa xếp hàng? Trên lỡ đầu tiên biến khóa, bỏ lỡ được gửi đến một bộ điều khiển
đồng bộ hóa, có thể được tích hợp với bộ điều khiển bộ nhớ hoặc với bộ điều khiển thư mục. Nếu khóa
miễn phí, nó chỉ đơn giản là trả lại cho bộ xử lý. Nếu khóa không có sẵn, Lớp kiểm soát tạo ra một danh
sách về yêu cầu của nút (ví dụ như là một bit trong một véc tơ) và gửi các bộ vi xử lý lại một giá trị khóa cho
các biến, các bộ vi xử lý sau đó quay vào.
Khi khóa được giải phóng, bộ điều khiển lựa chọn một bộ xử lý đi trước từ danh sách của các bộ vi xử lý
chờ đợi. Nó có thể sau đó, hoặc cập nhật các biến khóa trong bộ nhớ cache của bộ xử lý được lựa chọn
hoặc vô hiệu sao chép, gây ra các bộ vi xử lý bỏ lỡ và lấy một bản sao của khóa.
Khóa xếp hàng có thể được sử dụng để cải thiện hiệu suất của các rào cản.
Như chúng ta đã thấy, vấn đề đồng bộ hóa có thể trở nên khá cấp ở đa xử lý quy mô lớn hơn. Khi những thách
thức đặt ra bởi đồng bộ cùng với những thách thức đặt ra do độ trễ bộ nhớ lâu dài và tiềm năng trong tính
toán tải cân bằng, chúng ta có thể thấy tại sao việc sử dụng hiệu quả của bộ vi xử lý có cỡ lớn là rất khó khăn.
XIN CHÂN THÀNH CẢM ƠN!

×