Комунікаційні накладні витрати в суперкомп'ютері


10

Я шукаю достовірні довідки, в яких зазначається, скільки ресурсів витрачає суперкомп'ютер на координацію, а не на виконання фактичних завдань. Ресурси можуть мати доступну потужність обробки, але навіть Втт здається дійсним пристроєм.

Я вважаю, що один із моїх професорів чи підручників одного разу сказав, що в масово паралельних системах до половини наявної потужності обробки витрачається на координацію завдання та передачу повідомлень. На жаль, я не можу знайти цю посилання або будь-який інший матеріал про цю пропорцію.

Я усвідомлюю, що це буде сильно відрізнятися залежно від архітектури суперкомп'ютера, а сучасні реалізації, можливо, є більш ефективними в цьому плані, тому огляд цієї метрики в декількох архітектурах або еволюціях (до і після виділеного обладнання для передачі повідомлень) був би ще кращим.


2
Ви можете легко отримати будь-яке потрібне вам число, вибравши відповідний комп'ютер, алгоритм та реалізацію.
Девід Кетчесон

Відповіді:


10

Давним улюбленим орієнтиром у високоефективних обчисленнях був бенчмарк HPLinpack, який вимірює швидкість роботи комп’ютерної системи в операціях з плаваючою точкою в секунду при вирішенні дуже великої, щільної, лінійної системи рівнянь. Передбачається, що рішення приймає2/3н3+2н2 операції з плаваючою комою, і тестер може змінюватися н для досягнення максимальної продуктивності.

Орієнтовні заходи включають RPEAK (теоретична максимальна кількість операцій з плаваючою точкою в секунду для системи) та RMAX (максимально досягнута кількість операцій в секунду в еталоні HPLinpack.)

Для RPEAK характерно, що це значна частина RMAX, що свідчить про те, що в цьому еталонному завданні сучасні суперкомп'ютери можуть досягти значної частки своїх теоретичних пікових показників. Наприклад, у рейтингу суперкомп'ютерів за версією суперкомп'ютера TOP500 найшвидша машина Tianhe-2 має RPEAK = 54,902 петафлопс і RMAX = 33,863 петафлопса.

Однак, порівняльний показник HPLinpack вважається таким, що він не є репрезентативним для поточного навантаження. Результати HPlinpack зазвичай завищують продуктивність суперкомп'ютерів у фактичних програмах великим фактором.

Новий орієнтир під назвою HPCG знаходиться на стадії розробки. Цей орієнтир включає операції, які зазвичай виконуються в ітеративних методах для вирішення великих розріджених систем рівнянь, що виникають із дискретизованих PDE. Це навантаження набагато складніше для високопродуктивних комп'ютерів. Це також набагато репрезентативніше, для чого суперкомп'ютери використовуються на практиці.

Деякі ранні результати від HPCG отримують менше 5% RPEAK. Наприклад, Tianhe-2 має RPEAK = 54,902 петафлопс і HPCG при 0,58 петафлопсів (див. Посилання нижче на презентацію про HPCG.)

Топові показники HP500 HPLinpack можна знайти за адресою:

http://www.top500.org/

З презентацією щодо HPCG можна ознайомитись на:

http://www.hpcg-benchmark.org/downloads/isc15/HPCG-ISC15-FINAL-SLIDES_update1.pdf

Веб-сайт HPCG знаходиться на веб-сайті

http://www.hpcg-benchmark.org/


1
Мені було цікаво, де 2/3н3+2н2flops spec прийшов і мусив його шукати. Для всіх, хто цікавий, це кількість операцій для розкладання LU з частковим поворотом, тобто метод вирішення щільної системи.
Аврелій

3
Схоже, це не відповідає на питання, оскільки нічого не говорить про передачу повідомлення.
Девід Кетчесон

Це частково відповідає на питання в тому сенсі, що ці орієнтири говорять про те, наскільки ефективно використовуються одиниці з плаваючою точкою - ви можете відняти від одного, щоб дізнатись, скільки часу витрачається на все інше, що включає передачу повідомлень серед іншого.
Брайан Борчерс

6

Чесна відповідь, що ми не знаємо. Відповідь сильно залежить від того, що насправді виконується і який код написав користувач. Як зазначає Брайан Борчерс, існує велика різниця між двома орієнтирами, де ми маємо весь код, і нібито ми знаємо, що цей код робить, але існує велика розбіжність щодо того, наскільки репрезентативним є цей код щодо того, що насправді роблять користувачі суперкомп'ютерів. Без детального аналізу вихідного коду та важкого інструментарію реальних кодів на реальних машинах знайти це співвідношення неможливо. Є кілька проектів, які починають збирати дані, які могли б наблизити громаду до відповіді на це питання, але це зовсім не врегульовано.

Насправді питання насправді навіть не однозначне. Якщо на картці зв'язку вузла кластера є на ній процесор, який можна використовувати лише для зв'язку, як ви рахуєте час, який ця картка витрачає в режимі очікування, не обробляючи зв’язок (ні що інше)? Тобто, що вважається "доступною процесорною потужністю"? Чи вважаємо ми погано написаними програмами, які мають неоптимізовану програму обчислень та комунікацій так само, як оптимізовану? Що робити, якщо хтось використовує відомий антидіапазон у своєму коді, який свідомо недостатньо використовує процесор? Що з приємно паралельними програмами, які взагалі не спілкуються (я обіцяю, що вони запускаються на суперкомп'ютерах)?

Я б не витрачав твій час, намагаючись кількісно оцінити зауваження без манжети в книзі чи від вашого професора. Такі види тверджень існують для того, щоб нагадати, що паралельне програмування є важким і, як правило, виконано неякісно. Суперкомп'ютери також не ідеально розроблені для усунення або оптимізації відходів усіх відходів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.