Biểu đồ tỷ lệ song song log-log


17

Rất nhiều công việc của riêng tôi xoay quanh việc làm cho các thuật toán mở rộng quy mô tốt hơn, và một trong những cách ưa thích để hiển thị tỷ lệ song song và / hoặc hiệu quả song song là vẽ hiệu năng của thuật toán / mã theo số lượng lõi, ví dụ

âm mưu nhân rộng song song

trong đó -axis đại diện cho số lượng lõi và y -axis một số số liệu, ví dụ: công việc được thực hiện trên một đơn vị thời gian. Các đường cong khác nhau cho thấy hiệu quả song song lần lượt là 20%, 40%, 60%, 80% và 100% ở 64 lõi.xy

Thật không may, mặc dù trong nhiều ấn phẩm, những kết quả này được vẽ với tỷ lệ log-log , ví dụ kết quả trong bài báo này hoặc bài báo này . Vấn đề với các lô log-log này là rất khó để đánh giá tỷ lệ / hiệu quả song song thực tế, vd

nhập mô tả hình ảnh ở đây

Đó là cùng một âm mưu như trên, nhưng với quy mô log-log. Lưu ý rằng bây giờ không có sự khác biệt lớn giữa các kết quả cho hiệu quả song song 60%, 80% hoặc 100%. Tôi đã viết nhiều hơn một chút về điều này ở đây .

Vì vậy, đây là câu hỏi của tôi: lý do nào là có để hiển thị kết quả trong quy mô log-log? Tôi thường xuyên sử dụng tỷ lệ tuyến tính để hiển thị kết quả của riêng mình và thường xuyên bị các trọng tài nói rằng kết quả tỷ lệ / hiệu quả song song của riêng tôi trông không tốt bằng kết quả (log-log) của người khác, nhưng đối với cuộc sống của tôi Không thể thấy lý do tại sao tôi nên chuyển đổi phong cách cốt truyện.

Câu trả lời:


16

Chúng tôi hiện đang viết một bài báo có chứa một số lô tương đương, và chúng tôi ít nhiều có cùng một vấn đề. Bài viết nói về việc so sánh tỷ lệ của các thuật toán khác nhau trên số lượng lõi, dao động trong khoảng từ 1 đến tối đa 100 nghìn trên BlueGene. Lý do sử dụng lô loglog trong tình huống này là số lượng đơn đặt hàng có cường độ liên quan. Không có cách nào người ta có thể vẽ 6 bậc độ lớn theo tỷ lệ tuyến tính.

Và thực tế, khi vẽ thời gian theo số lượng lõi trong loglog, các thuật toán không được phân biệt rõ ràng, như bạn có thể thấy trong cốt truyện sau. Thời gian của một số thuật toán trên quy mô loglog.  Các thuật toán khác nhau rất khó để phân biệt.

Ep=T1/(pTp)T1TpppEpp

Ep=Tref/(pTp)Tref

Vẽ hiệu suất song song tương đối trên thang đo semilog cho thấy khá rõ tỷ lệ của thuật toán và cũng cho thấy các thuật toán thực hiện tương đối với nhau như thế nào. Hiệu suất song song tương đối của một số thuật toán so với số lượng lõi.


2
x

Lưu ý rằng các ô trông không ấn tượng như các ô chia tỷ lệ khác, vì chúng rơi ra khá nhanh trên logscale. Ngoài ra, về mặt lý thuyết, bạn cũng có thể vẽ hiệu quả trong một biểu đồ loglog để xem thêm chi tiết ở cạnh phải. Tuy nhiên, lưu ý rằng điều này có nghĩa là bạn xem xét chi tiết với hiệu quả rất thấp, điều này có lẽ không được quan tâm nhiều.
olenz 18/03/13

14

Georg Hager đã viết về điều này trong Fooling the Masses - Stunt 3: Scale log là bạn của bạn .

Mặc dù sự thật là các lô log-log của quy mô mạnh không phải là rất rõ ràng trên cao cấp, chúng cho phép hiển thị tỷ lệ trên nhiều đơn đặt hàng lớn hơn. Để xem tại sao điều này hữu ích, hãy xem xét một vấn đề 3D với việc tinh chỉnh thường xuyên. Ở quy mô tuyến tính, bạn có thể hiển thị hợp lý hiệu suất qua khoảng hai bậc độ lớn, ví dụ: 1024 lõi, 8192 lõi và 65536 lõi. Người đọc không thể nói từ cốt truyện rằng bạn có chạy bất cứ thứ gì nhỏ hơn không, và thực tế, cốt truyện chủ yếu chỉ so sánh hai lần chạy lớn nhất.

Bây giờ, giả sử chúng ta có thể phù hợp với 1 triệu ô lưới trên mỗi lõi trong bộ nhớ, điều này có nghĩa là sau khi nhân rộng gấp đôi với hệ số 8, chúng ta vẫn có thể có 16k ô cho mỗi lõi. Đó vẫn là một kích thước tên miền phụ khá lớn và chúng ta có thể mong đợi nhiều thuật toán chạy hiệu quả ở đó. Chúng tôi đã bao trùm phổ thị giác của biểu đồ (1024 đến 65536 lõi), nhưng thậm chí chưa bước vào chế độ mà việc mở rộng mạnh trở nên khó khăn.

Giả sử thay vào đó chúng tôi bắt đầu ở 16 lõi, cũng với 1 triệu ô lưới trên mỗi lõi. Bây giờ nếu chúng tôi mở rộng tới 65536 lõi, chúng tôi sẽ chỉ có 244 ô cho mỗi lõi, sẽ có nhiều hơn sành điệu. Trục log là cách duy nhất để biểu diễn rõ ràng phổ từ 16 lõi đến 65536 lõi. Tất nhiên, bạn vẫn có thể sử dụng trục tuyến tính và có chú thích "các điểm dữ liệu cho 16, 128 và 1024 lõi trùng nhau trong hình", nhưng bây giờ bạn đang sử dụng các từ thay vì chính hình để hiển thị.

Thang đo log-log cũng cho phép tỷ lệ của bạn "phục hồi" từ các thuộc tính của máy như di chuyển ra ngoài một nút hoặc giá đỡ. Tùy thuộc vào bạn cho dù điều này là mong muốn hay không.


xy

1
Đó là nhiều khó khăn hơn để quy mô mạnh một vấn đề duy nhất bằng một yếu tố của 4096 so với quy mô hai khác nhau kích thước vấn đề bằng một yếu tố của 64 mỗi. Trong ví dụ tôi đã đưa ra, thật dễ dàng để làm cho hai trường hợp độc lập hiển thị hiệu quả cao hơn 95%, nhưng trường hợp kết hợp duy nhất có hiệu suất dưới 30%. Trong khoa học và công nghiệp, không có lý do định trước nào cho thời gian quay vòng mong muốn nằm trong phạm vi kích thước hẹp mà thuật toán "thoải mái".
Jed Brown

Tôi hoàn toàn đồng ý rằng nhân rộng từ một đến hàng ngàn là một thách thức lớn! Lý do tôi coi các cường độ khác nhau là các vấn đề khác nhau là nó sẽ có ý nghĩa khác nhau đối với người dùng cuối. Ví dụ, trong MD, hầu hết các nhà sinh học không có BlueGene dưới tầng hầm, nhưng có một số máy trạm đa lõi, hoặc thậm chí một khoản trợ cấp một thời gian trên cụm có kích thước vừa phải (số lượng nút nhỏ) và mọi người nhìn vào lớn Tuy nhiên, các vấn đề CFD sẽ không quan tâm nhiều đến trường hợp một nút vì vấn đề sẽ không phù hợp với bộ nhớ. Đó không phải là về sự thoải mái của thuật toán, mà là thiết lập của người dùng.
Pedro

2

Tôi đồng ý với tất cả những gì Jed đã nói trong câu trả lời của anh ấy, nhưng tôi muốn thêm vào như sau. Tôi đã trở thành một người hâm mộ cách Martin Berzins và các đồng nghiệp của anh ấy thể hiện quy mô cho khuôn khổ Uintah của họ. Chúng vẽ biểu đồ tỷ lệ yếu và mạnh của mã trên các trục log-log (sử dụng thời gian chạy trên mỗi bước của phương thức). Tôi nghĩ rằng nó cho thấy cách mã quy mô khá tốt (mặc dù độ lệch so với tỷ lệ hoàn hảo là một chút khó xác định). Xem trang 7 và 8 hình 7 và 8 của tài liệu * này chẳng hạn. Họ cũng đưa ra một bảng với các số tương ứng với mỗi con số tỷ lệ.

Một lợi thế của điều này là một khi bạn đã cung cấp các con số, sẽ không có nhiều người đánh giá có thể nói (hoặc ít nhất là không nhiều mà bạn không thể bác bỏ).

* J. Luitjens, M. Berzin. Cải thiện hiệu suất của Uintah: Khung tính toán chia lưới thích ứng quy mô lớn, trong tiến trình của Hội nghị chuyên đề về xử lý song song và phân phối quốc tế của IEEE (IPDPS10) lần thứ 24, Atlanta, GA, trang 1--10. 2010. DOI: 10.1109 / IPDPS.2010.5470437


Bất kỳ cơ hội nào bạn có thể nhúng hình ảnh trực tiếp vào câu trả lời của bạn?
Aron Ahmadia 17/03/13

Mặc dù được cho là sử dụng hợp lý để mượn số liệu của họ, tôi muốn lái xe lưu lượng truy cập đến trang của các tác giả. Có lẽ tôi sẽ tạo ra một số số và biểu đồ của riêng tôi và quay lại sau với một con số.
Bill Barth

Từ quan điểm đó, bạn có thể bọc hình ảnh để nó liên kết đến trang web của tác giả, cũng như tăng số lượng văn bản trong liên kết. Nếu bạn muốn thảo luận thêm về điều này, tôi có thể mở một chuỗi meta / trò chuyện.
Aron Ahmadia

@BillBarth Liên kết của bạn bây giờ chỉ chuyển hướng đến trang chủ của họ. Bạn có thể sửa nó hoặc nhúng hình ảnh dự định?
Jed Brown

1
@JedBrown Liên kết được chỉnh sửa. Tham khảo đầy đủ thêm. DOI đã thêm.
Bill Barth
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.