Hãy hình dung thế này: bạn đang vội chuẩn bị một bữa tiệc ngon lành nhưng lại bị hạn chế bởi quy mô nhà bếp và số lượng người trên boong. Trong thế giới điện toán song song, Định luật Amdahl và Định luật Gustafson là những công thức đáng tin cậy mà bạn cần để tối ưu hóa kiệt tác ẩm thực của mình. Chúng giống như những thành phần bí mật đã tạo nên hiệu suất của máy tính trong nhiều thập kỷ, cho phép chúng ta tận hưởng tốc độ xử lý nhanh hơn bao giờ hết. Hai nguyên tắc này có thể là âm dương của điện toán song song và chúng đã và đang hướng dẫn những người am hiểu công nghệ trong hành trình chinh phục lĩnh vực bộ xử lý đa lõi và điện toán hiệu năng cao. Nhưng định luật của Amdahl và Gustafson là gì và chúng thực hiện phép thuật riêng biệt hay song song như thế nào? Nhận thức được tầm quan trọng của lập trình song song , hôm nay chúng ta sẽ đi sâu vào sự phức tạp của các định luật này và khám phá cách chúng có thể được sử dụng như những công cụ mạnh mẽ trong tay những lập trình viên am hiểu.
Định luật Amdahl: Bối cảnh
– Tăng tốc tối đa
– Hãy cẩn thận
Định luật Gustafson: Bối cảnh
- Tăng tốc theo tỷ lệ
– Hãy cẩn thận
Chia tỷ lệ mạnh và chia tỷ lệ yếu
– Kiểm tra tỷ lệ
- Tỉ lệ mạnh
- Tỉ lệ yếu
Kết luận
Trở lại năm 67, tại Hội nghị Máy tính chung Mùa xuân, Tiến sĩ Gene Amdahl, người đang thực hiện một số phép thuật máy tính nghiêm túc tại IBM, đã cùng với ba người am hiểu công nghệ khác, bao gồm cả nhà thông minh Daniel Slotnick, thiên tài đằng sau hoạt động bên trong của Illiac-IV. Bạn hỏi họ đang làm gì vậy? Vâng, họ đang vạch ra tương lai của kiến trúc máy tính. Trong hội nghị này, Tiến sĩ Gene Amdahl đã trình bày suy nghĩ của mình về những trở ngại mà “cách tiếp cận đa bộ xử lý” phải đối mặt khi giải quyết các vấn đề trong thế giới thực và tất cả những vấn đề phức tạp của chúng. Và đoán xem, anh ấy đã hết lời ca ngợi “phương pháp tiếp cận bộ xử lý đơn” cho những vấn đề có tính chất như vậy!
Khi còn ở IBM, Amdahl nhận thấy sâu sắc rằng một phần đáng kể công việc tính toán được thực hiện bởi cái mà ông gọi một cách khéo léo là “ công việc quản lý dữ liệu ”. Ông khẳng định chắc chắn rằng phần đặc biệt này vẫn duy trì sự nhất quán đáng kể trong khoảng một thập kỷ, liên tục chiếm tới 40% số lệnh được thực hiện trong quá trình sản xuất.
Điều gì nằm dưới sự bảo trợ của công việc “dọn phòng” này? Nó bao gồm một loạt các nhiệm vụ tính toán, tuy cần thiết nhưng không đóng góp trực tiếp vào nhiệm vụ tính toán cốt lõi. Tùy thuộc vào thuật toán và ứng dụng cụ thể, điều này có thể liên quan đến I/O dữ liệu, tiền xử lý, quản lý bộ nhớ, xử lý tệp, v.v. Tính nhất quán này cho thấy rằng, đối với nhiều ứng dụng, một phần đáng kể thời gian xử lý được dành cho các tác vụ này. Việc quản lý dữ liệu ở một mức độ nhất định là gần như không thể tránh khỏi và khó có thể giảm thiểu đáng kể. Amdahl lưu ý rằng chi phí này xuất hiện tuần tự, nghĩa là nó xảy ra từng bước một và không phù hợp với các kỹ thuật xử lý song song.
“Một kết luận khá rõ ràng có thể được rút ra vào thời điểm này là nỗ lực bỏ ra để đạt được tốc độ xử lý song song cao là lãng phí trừ khi nó đi kèm với những thành tựu về tốc độ xử lý tuần tự có mức độ gần như nhau.” - Tiến sĩ Gene Amdahl [1]
Trong bài báo gốc của mình [1], Amdahl cho biết thêm rằng lĩnh vực công việc “dọn phòng” chỉ là phần nổi của tảng băng chìm liên quan đến những thách thức mà phương pháp tiếp cận “đa bộ xử lý” phải đối mặt. Với nền tảng ấn tượng là một nhà vật lý lý thuyết được đào tạo có bằng Tiến sĩ, Amdahl có sự hiểu biết sâu sắc về những thách thức vật lý trong thế giới thực mà máy tính được thiết kế để giải quyết. Ông nhấn mạnh nhiều sự phức tạp, chẳng hạn như ranh giới không đều, phần bên trong không đồng nhất và sự phụ thuộc về không gian và thời gian vào các trạng thái thay đổi, tất cả đều gây ra những trở ngại ghê gớm cho mô hình “đa bộ xử lý”.
Ví dụ: hãy xem xét tính toán phân bổ nhiệt trên lưới Descartes 2D. Tại một điểm bất kỳ, nhiệt độ (T) phụ thuộc vào nhiệt độ của các điểm lân cận. Khi sử dụng mô hình tính toán song song, điều cần thiết là phải truyền đạt các giá trị này với các điểm lân cận, có thể được lưu trữ trên các bộ xử lý riêng biệt. Những vấn đề này tiếp tục phổ biến trong các kịch bản hiện đại.
Rất may, sự khéo léo tập thể của các chuyên gia tính toán đã mang lại nhiều phương pháp số và kỹ thuật lập trình phù hợp để giải quyết trực tiếp những thách thức phức tạp này.
Trong tác phẩm đầu tiên của mình, công thức của Amdahl không đi sâu vào các phương trình toán học; chỉ trong các phân tích tiếp theo, tốc độ tăng tốc tối đa mới được định lượng.
Định luật Amdahl dựa trên giả định rằng một phần f thời gian thực hiện của chương trình nối tiếp có thể song song một cách lý tưởng mà không cần bất kỳ chi phí liên lạc hoặc đồng bộ hóa nào. Phần bổ sung, được biểu diễn dưới dạng s = 1 − f, hoàn toàn tuần tự.
Do đó, nếu T là thời gian thực hiện của chương trình tuần tự, thì thời gian thực hiện trên p lõi, T(p), được tính bằng:
Tăng tốc , là tỷ lệ giữa thời gian thực hiện tuần tự và thời gian thực hiện song song, mang lại:
Do đó, giới hạn trên của việc tăng tốc có thể được định nghĩa là:
Mặc dù đơn giản nhưng định luật Amdahl không phải không có những hạn chế. Mô hình này bỏ qua các tắc nghẽn quan trọng của phần cứng như băng thông bộ nhớ, độ trễ và các ràng buộc I/O. Nó cũng không xem xét được những hạn chế về hiệu suất của việc tạo luồng, đồng bộ hóa, chi phí liên lạc và các yếu tố thực tế khác. Đáng tiếc là những yếu tố không được tính toán này thường có tác động bất lợi đến hiệu suất thực tế.
Hình dưới đây minh họa tác động của việc song song hóa đối với việc tăng tốc, được xác định theo định luật Amdahl. Rõ ràng là, ngay cả với tỷ lệ song song đáng kể là 95% và rất nhiều bộ xử lý, giới hạn tăng tốc tối đa có thể đạt được là khoảng 20 lần. Đẩy tỷ lệ song song hóa lên 99% và sử dụng vô số bộ xử lý có thể mang lại tốc độ tăng tốc ấn tượng hơn 100 lần, điều này hứa hẹn sẽ mang lại nhiều hứa hẹn.
Tuy nhiên, điều quan trọng cần phải nhận ra là việc có nhiều bộ xử lý như vậy là rất hiếm . Chúng ta thường làm việc với những con số khiêm tốn hơn nhiều, chẳng hạn như 64 hoặc thậm chí ít hơn.
Khi chúng tôi áp dụng định luật Amdahl cho một chương trình sử dụng 64 bộ xử lý (với f là 95%), tốc độ tăng tốc tối đa dao động trong khoảng 15,42 lần. Phải thừa nhận rằng con số này không mấy hứa hẹn!
Cái nhìn sâu sắc này phần nào bị che khuất bởi giới hạn được sử dụng trong biểu thức này:
Giới hạn này có xu hướng che giấu thực tế là số liệu tăng tốc thấp hơn đáng kể khi chúng ta xem xét số lượng bộ xử lý thực tế trong thế giới thực.
Tuy nhiên, nhược điểm đáng kể nhất của định luật Amdahl nằm ở chỗ nó giả định rằng kích thước vấn đề không đổi khi sử dụng nhiều lõi hơn để thực thi một ứng dụng.
Về cơ bản, nó giả định rằng phần có thể song song hóa vẫn không thay đổi, bất kể số lượng lõi được sử dụng. Hạn chế này đã được giải quyết và mở rộng triệt để bởi John L. Gustafson , người đã đề xuất một quan điểm sửa đổi mà ngày nay được gọi là định luật Gustafson . Tuy nhiên, bất chấp những vấn đề đã được thừa nhận và những cảnh báo này, điều cần thiết là phải thừa nhận rằng định luật Amdahl có giá trị riêng, mang lại những hiểu biết sâu sắc có giá trị về sự phức tạp của việc song song hóa. Định luật Amdahl được ứng dụng dưới dạng các thử nghiệm mở rộng quy mô mạnh mẽ , một chủ đề mà chúng ta sẽ khám phá sau.
Trong khi làm việc trên các hệ thống điện toán song song quy mô lớn tại Phòng thí nghiệm Quốc gia Sandia, Tiến sĩ John L. Gustafson và nhóm của ông đã thu được hệ số tăng tốc ấn tượng cho ba ứng dụng khác nhau trên siêu khối bộ xử lý 1024. Tỷ lệ mã nối tiếp tương ứng với 0,4–0,8%.
“…chúng tôi đã đạt được hệ số tăng tốc trên siêu khối bộ xử lý 1024 mà chúng tôi tin là chưa từng có: 1021 để phân tích ứng suất chùm tia bằng cách sử dụng gradient liên hợp, 1020 để mô phỏng sóng bề mặt có vách ngăn sử dụng sai phân hữu hạn rõ ràng và 1016 cho dòng chất lỏng không ổn định bằng cách sử dụng hiệu chỉnh thông lượng chuyên chở." — Tiến sĩ John L. Gustafson [2]
Chúng ta đã thấy rõ trong phần trước rằng theo định luật Amdahl, tốc độ tăng tốc tối đa có thể đạt được đối với một số lượng lớn bộ xử lý là 1/s. Vì vậy, làm thế nào có thể đạt được tốc độ tăng tốc đáng kinh ngạc 1021x này?
Gustafson [2] nhấn mạnh rằng biểu thức toán học có một giả định tinh tế, ngụ ý rằng biến f không liên quan đến p . Tuy nhiên, kịch bản này hiếm khi là thực tế mà chúng ta gặp phải. Trong các tình huống thực tế, chúng tôi thường không xử lý một bài toán có kích thước cố định và chạy nó trên nhiều bộ xử lý khác nhau, có lẽ ngoại trừ trong môi trường nghiên cứu học thuật được kiểm soát. Thay vào đó, trong các ứng dụng thực tế, kích thước bài toán có xu hướng tăng theo số lượng bộ xử lý.
Khi có sẵn các bộ xử lý mạnh hơn, người dùng sẽ thích ứng bằng cách mở rộng độ phức tạp của vấn đề để tận dụng tối đa các khả năng nâng cao. Họ có thể tinh chỉnh các khía cạnh như độ phân giải lưới, số lượng dấu thời gian, độ phức tạp của toán tử sai phân và các tham số khác để đảm bảo rằng chương trình có thể được thực thi trong khung thời gian mong muốn.
Theo Gustafson, sẽ thực tế hơn khi giả định rằng, trong thực tế, thời gian chạy vẫn tương đối ổn định thay vì kích thước của vấn đề.
Gustafson nhận thấy rằng phần song song hoặc vectơ của chương trình tăng tỷ lệ thuận với kích thước bài toán. Các yếu tố như khởi động vectơ, tải chương trình, tắc nghẽn nối tiếp và hoạt động I/O, góp phần chung vào thành phần của thời gian chạy chương trình, thường duy trì tương đối ổn định và không thể hiện sự tăng trưởng đáng kể theo quy mô vấn đề.
Gustafson đã đưa lập luận đi xa hơn bằng cách nhấn mạnh rằng trong các tình huống mà chúng ta nhân đôi bậc tự do trong một mô phỏng vật lý, thì việc nhân đôi số lượng bộ xử lý tương ứng thường là điều cần thiết. Theo ước tính sơ bộ, khối lượng công việc có thể được phân bổ song song một cách hiệu quả có xu hướng tăng tuyến tính theo số lượng bộ xử lý.
Khi kiểm tra chuyên sâu về ba ứng dụng được đề cập, Gustafson và các đồng nghiệp của ông đã phát hiện ra rằng thành phần song song hiển thị các hệ số tỷ lệ khoảng 1023,9969, 1023,9965 và 1023,9965.
Giả định của Gustafson nằm ở việc xem xét thời gian chạy chuẩn hóa trên các lõi p , tổng bằng (1 − f) + f , dẫn đến giá trị tổng thể là 1. Theo logic này, nếu (1 − f) + f biểu thị thời gian chạy trên các lõi p , thì thời gian chạy trên một lõi có thể được biểu thị bằng (1 − f) + p*f . Do đó, việc tăng tốc, mà Gustafson gọi là “ tăng tốc theo tỷ lệ ”, có thể được tính như sau:
Khi chúng tôi áp dụng định luật Gustafson cho một chương trình sử dụng 64 bộ xử lý (với f là 95%), tốc độ dự đoán là 60,85 lần (so với 15,42 lần theo định luật Amdahl). Bây giờ chúng ta đang nói chuyện😉
Những số liệu sau đây nêu bật sự khác biệt giữa hai luật.
Quan điểm của Amdahl và Gustafson đưa ra những quan điểm khác biệt về song song hóa, mỗi quan điểm đều có những giả định riêng.
Định luật Amdahl giả định rằng khối lượng công việc có thể song song là không đổi và không phụ thuộc vào số lượng bộ xử lý, khiến nó rất bi quan. Quan điểm của Gustafson, giả định rằng khối lượng công việc có thể song song tăng trưởng tuyến tính với số lượng lõi, chắc chắn là thực tế trong nhiều tình huống. Tuy nhiên, đôi khi nó có thể lạc quan quá mức.
Các ứng dụng trong thế giới thực thường xuyên gặp phải các ràng buộc có thể hạn chế khả năng mở rộng tuyến tính này. Ví dụ: khi số lượng lõi tăng lên, lợi nhuận giảm dần có thể xảy ra do sự phức tạp trong xử lý song song, sự phụ thuộc dữ liệu và chi phí truyền thông. Hơn nữa, những hạn chế về phần cứng trên thực tế đã hạn chế số lượng lõi có thể được tích hợp hiệu quả vào một con chip. Định luật Gustafson có thể không phải lúc nào cũng giải quyết được những thách thức phức tạp trong thế giới thực này, nên cần phải xem xét những lưu ý ảnh hưởng đến khả năng áp dụng của nó.
Hiệu quả của định luật Gustafson cũng có thể phụ thuộc vào bản chất của ứng dụng. Trong khi một số ứng dụng có khả năng mở rộng tuyến tính một cách tự nhiên với số lượng lõi ngày càng tăng, thì những ứng dụng khác có thể ổn định sớm hơn nhiều do những hạn chế cố hữu hoặc bản chất của vấn đề. Sự phức tạp trong lập trình và khả năng giảm lợi nhuận phải được xem xét khi xem xét tính khả thi của khả năng mở rộng tuyến tính trong các ứng dụng thực tế.
Về bản chất, trong khi đưa ra cái nhìn lạc quan hơn về song song hóa, định luật Gustafson cần được áp dụng với sự hiểu biết sâu sắc về ứng dụng, các hạn chế về phần cứng và sự phức tạp của lập trình song song để phù hợp với sự phức tạp trong thế giới thực của điện toán hiện đại.
Về cốt lõi, khả năng mở rộng đề cập đến khả năng của một hệ thống hoặc ứng dụng để quản lý hiệu quả khối lượng công việc tăng lên khi quy mô của nó mở rộng.
Trong điện toán, dù là phần cứng hay phần mềm, khả năng mở rộng biểu thị khả năng nâng cao sức mạnh tính toán bằng cách tăng cường các tài nguyên sẵn có.
Trong bối cảnh các cụm Điện toán hiệu năng cao (HPC), việc đạt được khả năng mở rộng là điều then chốt; nó biểu thị khả năng mở rộng liền mạch công suất tổng thể của hệ thống bằng cách tích hợp các thành phần phần cứng bổ sung. Về phần mềm, khả năng mở rộng thường đồng nghĩa với hiệu quả song song hóa , biểu thị tỷ lệ giữa tốc độ tăng tốc thực tế được thực hiện và tốc độ tăng tốc lý tưởng có thể đạt được khi sử dụng một số bộ xử lý cụ thể. Số liệu này cung cấp thông tin chi tiết về mức độ hiệu quả của phần mềm có thể tận dụng quy trình xử lý song song để nâng cao hiệu suất.
Trong quá trình phát triển điển hình của các ứng dụng lớn, việc bắt đầu thử nghiệm với kích thước đầy đủ của vấn đề và số lượng bộ xử lý tối đa ngay từ đầu thường là không thực tế. Cách tiếp cận này đòi hỏi thời gian chờ đợi kéo dài và sử dụng quá mức tài nguyên. Do đó, một chiến lược thực tế hơn bao gồm việc giảm quy mô các yếu tố này ngay từ đầu, điều này sẽ đẩy nhanh giai đoạn thử nghiệm và cho phép ước tính chính xác hơn các nguồn lực cần thiết cho hoạt động toàn diện cuối cùng, hỗ trợ lập kế hoạch nguồn lực.
Kiểm tra khả năng mở rộng đóng vai trò là phương tiện để đánh giá mức độ ứng dụng có thể thích ứng với các kích cỡ vấn đề khác nhau và số lượng bộ xử lý khác nhau, đảm bảo hiệu suất tối ưu.
Điều quan trọng cần lưu ý là kiểm tra khả năng mở rộng không xem xét kỹ lưỡng chức năng tổng thể hoặc tính chính xác của ứng dụng; trọng tâm chính của nó là hiệu suất và hiệu quả khi tài nguyên tính toán được điều chỉnh.
Hai bài kiểm tra tỷ lệ tiêu chuẩn, mạnh và yếu , được sử dụng rộng rãi trong tính toán song song.
Việc mở rộng quy mô mạnh mẽ liên quan đến việc tăng số lượng bộ xử lý trong khi vẫn giữ nguyên kích thước vấn đề. Cách tiếp cận này giúp giảm khối lượng công việc trên mỗi bộ xử lý, điều này đặc biệt có giá trị đối với các ứng dụng sử dụng nhiều CPU chạy trong thời gian dài. Mục tiêu chính của việc mở rộng quy mô mạnh mẽ là xác định cấu hình mang lại thời gian thực thi hợp lý trong khi vẫn giữ chi phí tài nguyên trong phạm vi có thể quản lý được.
Việc mở rộng quy mô mạnh mẽ được tuân theo định luật Amdahl, với kích thước bài toán được giữ cố định trong khi số lượng phần tử xử lý được tăng lên. Phương pháp này thường phù hợp với các chương trình có khối lượng công việc liên quan đến CPU đáng kể.
Mục đích cuối cùng của việc mở rộng quy mô mạnh mẽ là xác định “điểm phù hợp” tối ưu cho phép hoàn thành các phép tính trong khung thời gian hợp lý, đồng thời giảm thiểu lãng phí chu trình xử lý do chi phí song song.
Trong tỷ lệ mạnh, một chương trình được coi là có tỷ lệ tuyến tính nếu việc tăng tốc, tính theo đơn vị công việc được hoàn thành trên một đơn vị thời gian, phù hợp với số lượng phần tử xử lý được sử dụng (N). Tương tự, việc tăng tốc có thể là tuyến tính hoặc thậm chí siêu tuyến tính, tùy thuộc vào mức độ tăng tốc theo số lượng bộ xử lý.
Cuối cùng, tôi đã thử thực hiện các thử nghiệm mở rộng quy mô mạnh mẽ trên một trong các mã của mình. Fluidchen-EM là Bộ giải động lực học chất lỏng tính toán có khả năng giải quyết nhiều vấn đề về động lực học chất lỏng. Các kết quả sau đây tương ứng với mô phỏng khoang điều khiển bằng nắp . Vận tốc ở dấu thời gian cuối cùng (sau khi hội tụ) được hiển thị trực quan và thời gian chạy thực thi được tính toán. Fluidchen-EM sử dụng MPI để phân phối miền tính toán vào các bộ xử lý iproc*jproc .
Lưu ý : Kết quả được chạy trên máy tính cá nhân của tôi và tất cả các lõi chỉ tương ứng với một bộ xử lý. Kết quả có thể thay đổi nếu mô phỏng được chạy trên máy lớn hơn và tốt hơn!
Miền tính toán được chia thành tổng số điểm lưới imax*jmax .
iproc: Số lượng bộ xử lý theo hướng x
jproc: Số lượng bộ xử lý theo hướng y
Như được hiển thị trong hình, thời gian thực hiện giảm mạnh khi số lượng bộ xử lý tăng gấp đôi từ 1 lên 2. Tuy nhiên, tốc độ tăng tốc không đáng kể đối với lần tăng gấp đôi số bộ xử lý tiếp theo từ 2 lên 4 và thậm chí nó còn bắt đầu bão hòa để tăng thêm về số lượng bộ xử lý. Tuy nhiên, kết quả được tổng hợp trên bộ xử lý có tám lõi, vì vậy những kết quả này có thể thay đổi nếu quá trình thực thi được thực hiện trên máy lớn hơn và mạnh hơn.
Trong khả năng mở rộng yếu, số lượng bộ xử lý và kích thước vấn đề tăng lên, duy trì khối lượng công việc không đổi trên mỗi bộ xử lý. Tỷ lệ yếu phù hợp với định luật Gustafson, trong đó tốc độ tăng tỷ lệ được tính toán dựa trên khối lượng công việc của quy mô vấn đề được chia tỷ lệ, trái ngược với định luật Amdahl tập trung vào quy mô vấn đề cố định.
Kích thước vấn đề được phân bổ cho mỗi phần tử xử lý không đổi, cho phép các phần tử bổ sung cùng nhau giải quyết một vấn đề tổng thể lớn hơn, có thể vượt quá dung lượng bộ nhớ của một nút đơn lẻ.
Khả năng mở rộng yếu sẽ biện minh cho các ứng dụng có yêu cầu về bộ nhớ hoặc tài nguyên đáng kể (những yêu cầu giới hạn bộ nhớ) cần nhiều bộ nhớ hơn mức mà một nút đơn có thể cung cấp. Các ứng dụng như vậy thường thể hiện khả năng mở rộng hiệu quả vì chiến lược truy cập bộ nhớ của chúng ưu tiên các nút lân cận, khiến chúng rất phù hợp với số lượng lõi cao hơn.
Trong trường hợp khả năng mở rộng yếu, khả năng mở rộng tuyến tính đạt được khi thời gian chạy không đổi khi khối lượng công việc tăng tỷ lệ thuận với số lượng bộ xử lý.
Hầu hết các chương trình áp dụng chế độ này đều thể hiện khả năng mở rộng thuận lợi với số lượng lõi cao hơn, đặc biệt là những chương trình sử dụng mẫu liên lạc lân cận gần nhất, vì chi phí liên lạc của chúng vẫn tương đối nhất quán bất kể số lượng quy trình được sử dụng. Các trường hợp ngoại lệ đối với xu hướng này bao gồm các thuật toán phụ thuộc nhiều vào các mô hình truyền thông toàn cầu.
Cuối cùng, tôi đã thực hiện các bài kiểm tra tỷ lệ yếu bằng cách sử dụng Fluidchen-EM . Các kết quả sau đây tương ứng với mô phỏng đối lưu Rayleigh–Bénard . Một lần nữa, vận tốc ở dấu thời gian cuối cùng (sau khi hội tụ) được hiển thị trực quan và thời gian chạy thực thi được tính toán. Fluidchen-EM sử dụng MPI để phân phối miền tính toán vào các bộ xử lý iproc*jproc .
Lưu ý: Kết quả được chạy trên máy tính cá nhân của tôi và tất cả các lõi chỉ tương ứng với một bộ xử lý. Kết quả có thể thay đổi nếu mô phỏng được chạy trên máy lớn hơn và tốt hơn!
Miền tính toán được chia thành tổng số điểm lưới imax*jmax .
iproc: Số lượng bộ xử lý theo hướng x
jproc: Số lượng bộ xử lý theo hướng y
imax: Số điểm lưới dọc theo chiều dài của kênh
jmax: Số lượng điểm lưới dọc theo chiều cao của kênh
xlength: độ dài của kênh
ylength: chiều cao của kênh
Như được minh họa trong hình trên, thời gian chạy thực thi thể hiện sự gia tăng cùng với sự tăng trưởng của cả quy mô vấn đề và số lượng bộ xử lý. Hành vi này có thể được quy cho một số yếu tố. Với tất cả các lõi nằm trên một bộ xử lý, khi kích thước vấn đề tăng lên và có nhiều bộ xử lý tham gia hơn, một phần thời gian xử lý sẽ bị tiêu tốn khi thiết lập giao tiếp MPI (Giao diện truyền tin nhắn). Ngoài ra, quy mô vấn đề lớn hơn đòi hỏi phải tăng cường trao đổi dữ liệu giữa các lõi, khuếch đại độ trễ truyền thông do băng thông hữu hạn của mạng truyền thông.
Do đó, những kết quả kiểm tra này cung cấp những hiểu biết quan trọng về sự song song của vấn đề.
Việc lựa chọn giữa Định luật Gustafson và Định luật Amdahl trong song song hóa thuật toán phụ thuộc vào khả năng thích ứng của khối lượng công việc tính toán. Định luật Gustafson phù hợp khi một thuật toán có thể tự động điều chỉnh lượng tính toán để phù hợp với khả năng song song hóa có sẵn. Ngược lại, Định luật Amdahl phù hợp hơn khi tải tính toán cố định và không thể thay đổi đáng kể bằng cách song song hóa. Trong các tình huống thực tế, việc điều chỉnh thuật toán để song song hóa thường liên quan đến một số mức độ sửa đổi tính toán và cả hai luật đều đóng vai trò là điểm chuẩn có giá trị, đưa ra các giới hạn trên và dưới về tốc độ dự đoán. Sự lựa chọn giữa chúng phụ thuộc vào mức độ thay đổi tính toán được đưa ra trong quá trình song song hóa, cho phép đánh giá toàn diện các lợi ích tăng tốc tiềm năng.
[2] Đánh giá lại định luật Amdahl | Truyền thông của ACM
[4] Định luật Amdahl về dự đoán tương lai của đa lõi được coi là có hại (tu-berlin.de)
[5] Chia tỷ lệ — HPC Wiki (hpc-wiki.info)
[6] Amdahl vs. gustafson bởi r1parks — Infogram
Ảnh nổi bật của Marc Sendra Martorell trên Bapt
Cũng được xuất bản ở đây .