Khả năng mở rộng kiến trúc song song

Một phần của tài liệu Các hệ vi xử lý tiên tiến (Trang 45)

Một kiến trúc song song được xem là có khả năng mở rộng nếu nó có thể được mở rộng (giảm ) thành một hệ thống lớn hơn (nhỏ hơn) với sự tăng (giảm) tuyến tính hiệu suất (chi phí) của nó. Định nghĩa chung này cho thấy mong muốn cung cấp cơ hội bình đẳng cho việc mở rộng hệ thống để cải thiện hiệu suất hoặc giảm quy mô hệ thống để đạt được hiệu quả chi phí và / hoặc khả năng chi trả tốt hơn. Nếu không có phát biểu ngược lại, trong phần này chúng ta sẽ chỉ thảo luận mở rộng quy mô của hệ thống. Trong bối cảnh này, khả năng mở rộng được sử dụng như một thước đo khả năng cung cấp hiệu suất cao hơn của hệ thống,

ví dụ như tốc độ khi kích thướt của nó tăng. Nói cách khác, khả năng mở rộng phản ánh khả năng của hệ thống trong việc sử dụng hiệu quả các nguồn lực tăng thêm. Trên thực tế, khả năng mở rộng của hệ thống có thể được thể hiện qua một số tiêu chí. Các tiêu chí này bao gồm tốc độ, tính hiệu quả, qui mô, các ứng dụng, thế hệ, và sự không đồng nhất.

Theo tiêu chí tốc độ, một hệ thống có thể mở rộng là hệ thống có khả năng tăng tốc độ của nó tương ứng với sự gia tăng về số bộ vi xử lý. Chẳng hạn, xét trường hợp cộng m số trong hệ thống song song dạng khối lập phương 4 chiều (n = 16 bộ vi xử lý). Giả sử đơn giản rằng m là bội số của n, ban đầu mỗi bộ xử lý có (m / n) số được lưu trữ trong bộ nhớ riêng của nó. Quá trình cộng có thể tiến hành như sau. Đầu tiên, mỗi bộ xử lý có thể cộng các số riêng của nó một cách tuần tự trong (m / n) bước. Phép toán cộng được thực hiện đồng thời trong tất cả các bộ vi xử lý. Tiếp theo, mỗi cặp vi xử lý lân cận có thể truyền kết quả cho nhau và theo đó các kết quả đã truyền được cộng vào kết quả cục bộ. Bước thứ hai có thể được lặp lại (log2n) lần, cho đến khi kết quả cuối cùng của quá trình cộng được lưu trữ ở một trong các bộ vi xử lý. Giả sử mỗi lần tính toán và truyền dữ liệu tốn một đơn vị thời gian thì thời gian cần thiết để thực hiện việc cộng m số là Tp = (m / n) + 2 x log2n. Và

như chúng ta đã biết, thời gian cần thiết để thực hiện phép toán tương tự trên một bộ vi xử lý là Ts = m. Do đó, sự tăng tốc là

Bảng 3.6 biểu diễn sự tăng tốc S với các giá trị m và n khác nhau. Một điều thú vị mà chúng ta thấy từng bảng này là đối với cùng số lượng bộ xử lý n, một đối tượng lớn hơn của cùng một bài toán m, dẫn đến sự tăng độ tăng tốc S. Đây là một đặc tính của một hệ thống song song có thể mở rộng.

Về mặt hiệu suất, một hệ thống song song được cho là có khả năng mở rộng nếu hiệu suất của nó có thể được giữ cố định khi số bộ xử lý tăng lên, miễn là kích thước bài toán (cỡ bài toán) cũng tăng lên. Chẳng hạn, chúng ta xét việc cộng m số trên mạng lập phương n chiều. Hiệu suất của hệ thống này được xác định dựa trên tỷ lệ giữa sự tăng tốc thực tế S và sự tăng tốc lý tưởng n. Vì vậy, ξ = (S / n) = m / (m + 2n x log2 n). Bảng 3.7 cho thấy giá trị của hiệu suất ξ, với các giá trị m và n khác nhau. Các giá trị trong bảng cho thấy rằng đối với cùng số lượng bộ vi xử lý n, hiệu suất cao hơn đạt được khi kích thước của bài toán m tăng lên. Tuy nhiên, khi số lượng các bộ xử lý n tăng lên, thì hiệu suất tiếp tục giảm. Với hai nhận xét trên, ta có thể để duy trì hiệu suất cố định bằng cách tăng đồng thời cả kích thước của bài toán m, và số bộ xử lý n. Đây là một đặc tính của một hệ thống song song có thể mở rộng được.

Cần lưu ý rằng mức độ khả năng mở rộng của hệ thống song song được xác định bởi tốc độ tăng kích thước bài toán theo n để duy trì hiệu suất cố định khi số bộ xử lý tăng lên. Ví dụ, trong một hệ thống song song có tính mở rộng cao, kích thước của bài toán cần được tăng lên một cách tuyến tính đối với n để duy trì hiệu suất cố định. Tuy nhiên, trong một hệ thống mở rộng kém, kích thước của bài toán cần tăng dưới dạng hàm mũ theo n để duy trì hiệu suất cố định.

BẢNG 3.6 Sự tăng tốc khả dĩ với các giá trị m và n khác nhau

BẢNG 3.7 Hiệu suất với các giá trị m và n khác nhau

Như chúng ta đã biết, thời gian cần thiết để mỗi bộ xử lý thực hiện nhiệm vụ song song trong việc giải bài toán cộng m số trên mạng lập phương n chiều là

(m / n) + 2 x log2 n. Trong khoảng thời gian này, khoảng (m / n) được sử dụng vào việc thực thi thực tế, trong khi phần thời gian còn lại Toh, là thời gian hao phí phát sinh trong quá trình thực hiện các nhiệm vụ như truyền thông giữa các bộ vi xử lý. Chúng ta có thể áp dụng các hệ thức sau đây: Toh = n x Tp - Ts. Ví dụ, toàn bộ thời gian hao phí đối với bài toán cộng được xét ở trên là Toh = 2n x log2 n. Thật thú vị khi nhận thấy rằng một thuật toán tuần tự chạy trên một bộ xử lý đơn không bị ảnh hưởng bởi thời gian hao phí như vậy. Bây giờ, chúng ta có thể viết lại biểu thức hiệu suất là ξ= m / (m + Toh), suy ra phương trình m =ξ/ (1 - ξ) x Toh. Xét lại bài toán cộng m số trong mạng khối lập phương n chiều. Đối với bài toán này thì kích thước bài toán là m = 2 x ξ / (1 - ξ) x n x log2 n = Knx log2 n = Θ (n x log2 n). Tốc độ mà kích thước bài toán m cần tăng theo số bộ xử lý n, để giữ hiệu suất cố định được gọi là hiệu suất, ξ của một hệ thống song song và có thể được sử dụng như một đại lượng đặc trưng cho khả năng mở rộng hệ thống. Một hệ thống song song có khả năng mở rộng cao có hiệu suất nhỏ, trong khi một hệ thống song song có khả năng mở rộng kém có hiệu suất lớn. Về mặt lý thuyết mà nói, một hệ thống song song được xem là có thể mở rộng nếu hàm hiệu suất (isoefficiency function) của nó tồn tại, nếu không hệ thống này không được coi là không thể mở rộng. Như chúng ta đã biết, Gustafson đã chỉ ra rằng bằng cách mở rộng kích thước bài toán m, ta có thể duy trì sự tăng tốc gần tuyến tính trên khoảng 1024 bộ xử lý (xem phần 3.2).

Sau khi thảo luận các vấn đề về sự tăng tốc và hiệu suất của hệ thống song song có thể mở rộng, chúng ta hãy thảo luận về mối liên hệ giữa chúng. Rất hữu ích để chỉ ra ngay từ đầu rằng, dễ thấy sự gia tăng vận tốc của một hệ thống song song ( có lợi) là nhờ sự gia tăng số bộ vi xử lý, đi kèm với sự giảm hiệu suất (giá thành). Để xem xét tính chất thực tế của sự tăng tốc và hiệu suất, trước hết chúng ta cần đưa vào một tham số mới, được gọi là thuật toán song song trung bình (Q). Thuật ngữ này được định nghĩa là số bộ xử lý trung bình hoạt động trong việc thực thi các phần mềm song song nào đó (chương trình), với điều kiện là có sẵn số lượng không giới hạn các bộ xử lý. Thuật toán song song trung bình có thể

được định nghĩa tương đương như sự tăng tốc đạt được giả sử có sẵn các bộ xử lý với một số lượng không giới hạn. Ngoài ta còn có nhiều định nghĩa khác về thuật toán song song trung bình. Điều này cho thấy một khi Q được xác định, các giới hạn sau đây cũng đạt được đối với sự tăng tốc và hiệu suất trên một hệ thống n bộ xử lý:

Hai giới hạn ở trên chứng tỏ rằng tổng của phần tăng tốc khả dĩ cực đại đạt được, S(n)/Q, và hiệu suất đạt được phải luôn luôn lớn hơn 1. Cũng cần chú ý rằng, sự song song trung bình, Q, hiệu suất (chi phí) tổn hao để đạt được sự tăng tốc nhất định được tính bằng công thức ξ

(n) ≥ (Q — S(n))/(Q — 1). Do đó, sẽ là công bằng khi nói rằng độ song song trung bình của một hệ song song, Q, xác định sự cân bằng giữa sự tăng tốc tương ứng theo hiệu suất.

Cùng với các hệ số phẩm chất có thể mở rộng nói trên, có một số hệ số phẩm chất không tiêu chuẩn khác được một số nhà nghiên cứu sử dụng. Một trong những hệ số phẩm chất này được làm rõ (giải thích) bên dưới.

Khả năng mở rộng kích thước đặc trưng cho số bộ vi xử lý cực đại mà một hệ thống có thể chứa đựng. Chẳng hạn, khả năng mở rộng kích thước của IBM SP2 là 512, trong khi khả năng mở rộng kích thước của hệ đa xử lý đối xứng (SPM) là 64.

Khả năng mở rộng ứng dụng đề cập đến khả năng chạy phần mềm ứng dụng với hiệu suất cải thiện trên phiên bản quy mô lớn của hệ thống. Chẳng hạn, xét một hệ thống n bộ xử lý được sử dụng như một server cơ sở dữ liệu, server này có thể điểu khiển 10000 giao tác trong một giây. Hệ thống này được gọi là có khả năng mở rộng ứng dụng nếu số giao tác có thể tăng đến 2000 dùng gấp đôi số bộ xử lý.

Khả năng mở rộng thế hệ đề cập đến khả năng mở rộng hệ thống bằng cách dùng các thành phần thế hệ mới (nhanh). Ví dụ dễ thấy nhất về khả năng mở rộng thế hệ là các máy tính IBM. Một người dùng có thể nâng cấp hệ thống của anh ấy/chị ấy (phần cứng hoặc phần mềm) trong khi vẫn có thể chạy mã của họ được tạo ra trên hệ thống hiện tại mà không cần thay đổi để chạy trên hệ thống cập nhật.

Khả năng mở rộng không đồng nhất đề cập đến khả năng mở rộng hệ thống bằng cách dùng các yếu tố phần cứng và phần mềm được cung cấp bởi các nhà sản xuất khác nhau. Chẳng hạn, trong Môi Trường Hệ Điều Hành Song Song IBM (POE), một chương trình song song có thể chạy mà không thay đổi trên bất kỳ nút mạng RS6000 nào; mỗi cái có thể là PowerPC cấp thấp hoặc nút SP2 cấp cao.

Theo quan điểm về khả năng mở rộng các hệ thống song song, Gordon Bell đã chỉ ra rằng, để một hệ thống song song tồn tại lâu dài, nó phải thỏa mãn năm yêu cầu. Những yêu cầu này là khả năng mở rộng kích thước, khả năng mở rộng thế hệ, khả năng mở rộng không gian, tính tương thích và tính cạnh tranh. Như có thể thấy, ba yêu cầu sống còn dài hạn này phải đi kèm với các dạng mở rộng khác nhau.

Như đã thấy từ phần giới thiệu ở trên, khả năng mở rộng, bất kể ở hình thức nào, là một tính chất đáng quan tâm của bất kỳ hệ thống song song nào. Nguyên nhân là do nó đảm bảo rằng với tính song song đầy đủ trong một chương trình, hiệu suất, sự tăng tốc có thể được cải thiện bằng cách đưa vào các tài nguyên phần cứng bổ sung mà không cần thay đổi chương trình. Do tầm quan trọng của nó, đã xuất hiện một khuynh hướng thiết kế mới, được gọi là thiết kế để mở rộng (DFS), nó xem việc sử dụng khả năng mở rộng như một đối tượng thiết kế chủ yếu. Hai cách tiếp cận khác nhau đã được phát triển dưới dạng DFS. Đó là thiết kế an toàn và tương thích ngược. Dùng phương pháp đầu tiên, các hệ thống được thiết kế với những tính năng phụ phục vụ cho việc mở rộng hệ thống trong tương lai. Một ví dụ minh họa cho phương pháp này là thiết kế các bộ xử lý hiện đại với địa chỉ 64 bit, tức là không gian địa chỉ 264 byte. Chúng ta cần chú ý rằng hệ điều hành UNIX hiện tại chỉ hổ trợ không gian địa chỉ 32 bit. Với thiết kế an toàn không gian bộ nhớ, sự chuyển sang UNIX 64 bit

trong tương lai có thể được thực hiện với sự thay đổi hệ thống ít nhất. Một dạng khác của DFS là tương thích ngược. Phương pháp này xem xét các yêu cầu cho các hệ thống thu hẹp. Tương thích ngược cho phép các thành phần mở rộng (phần cứng hoặc phần mềm) có thể được sử dụng với cả hệ thống ban đầu và hệ thống thu hẹp. Chẳng hạn như, một bộ xử lý mới có thể thực thi mã được tạo ra bởi các bộ xử lý cũ. Tương tự, một phiên bản mới của hệ điều hành phải giữ lại những chức năng có ích của phiên bản trước đó để phần mềm ứng dụng chạy trên phiên bản cũ có thể chạy trên phiên bản mới.

Sau khi đã giới thiệu về một số hệ số phẩm chất liên quan đến khả năng mở rộng đối với các hệ thống song song, bây giờ chúng ta chuyển sang một vấn đề quan trọng khác, đó là tiêu chuẩn đo hiệu suất.

Một phần của tài liệu Các hệ vi xử lý tiên tiến (Trang 45)