Діаграми паралельного масштабування / ефективності журналу журналу журналу


17

Багато моєї власної роботи обертається над тим, щоб покращити масштаб алгоритмів, і один із кращих способів показу паралельного масштабування та / або паралельної ефективності - це побудувати графік продуктивності алгоритму / коду за кількістю ядер, наприклад

штучне паралельне масштабування сюжету

де -ось представляє кількість ядер, а y -ось деяка метрика, наприклад робота, виконана за одиницю часу. Різні криві показують паралельну ефективність 20%, 40%, 60%, 80% і 100% при 64 ядрах відповідно.ху

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

введіть тут опис зображення

Це той самий сюжет, що і вище, але з масштабуванням журналу журналів. Зауважте, що зараз немає великої різниці між результатами для 60%, 80% або 100% паралельної ефективності. Я написав трохи більш докладно про це тут .

Отже, ось моє запитання: Яке обґрунтування існує для показу результатів в масштабуванні журналів журналів? Я регулярно використовую лінійне масштабування, щоб показувати власні результати, і регулярно забиваються арбітрами, кажучи, що мої власні результати паралельного масштабування / ефективності виглядають не так добре, як результати (журнал-журнал) інших, але на все життя я не можу зрозуміти, чому я повинен перемикати стилі сюжету.

Відповіді:


16

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

І справді, будуючи графік часу над кількістю ядер у лог-логу, алгоритми не дуже відрізняються, як ви бачите на наступному сюжеті. Час виконання ряду алгоритмів у лог-масштабі.  Різні алгоритми важко розрізнити.

Еp=Т1/(pТp)Т1ТpppЕpp

Еp=Тrеf/(pТp)Тrеf

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


2
х

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

14

Георг Хагер писав про це у " Дуренні мас" - трюк 3: Шкала журналу - ваш друг .

Хоча це правда, що схеми сильного масштабування журналу журналів не дуже вибагливі з високого рівня, вони дозволяють показувати масштабування на багато інших порядків. Щоб зрозуміти, чому це корисно, розгляньте 3D-проблему з регулярним доопрацюванням. У лінійному масштабі ви можете обґрунтовано показувати продуктивність приблизно на два порядки, наприклад, 1024 ядра, 8192 ядра та 65536 ядер. Читач неможливо сказати із сюжету, чи ви пробігли щось менше, і реально, сюжет здебільшого просто порівнює найбільші два прогони.

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

Припустимо, замість того, що ми починали з 16 ядер, також з 1 мільйоном сітки на ядро. Тепер, якщо ми масштабуємо 65536 ядер, у нас буде лише 244 комірки на ядро, що буде набагато вибагливішим. Вісь журналу - єдиний спосіб чітко представити спектр від 16 ядер до 65536 ядер. Звичайно, ви все ще можете використовувати лінійну вісь і мати підпис, що говорить: "точки даних для 16, 128 та 1024 ядер перекриваються на фігурі", але тепер ви використовуєте слова замість самої фігури для показу.

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


ху

1
Це набагато важче , сильним масштабі однієї проблеми з коефіцієнтом 4096 , ніж в масштабі двох різних розмірів проблемних з коефіцієнтом 64 кожного. У прикладі, який я наводив, легко зробити так, щоб два незалежних випадки виявилися ефективнішими, ніж ефективність 95%, але якщо єдиний комбінований випадок має ефективність менше 30%. У науці та промисловості немає заздалегідь визначеної причини, щоб бажаний час повороту потрапляв у вузький діапазон розмірів, де алгоритм "комфортний".
Джед Браун

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

2

Я погоджуюся з усім, що Джед мав сказати у своїй відповіді, але хотів додати наступне. Я став фанатом того, як Мартін Берзінс та його колеги демонструють масштабування для своїх програм Uintah. Вони планують слабке та сильне масштабування коду на осях журналу журналу (використовуючи час виконання за крок методу). Я думаю, що це показує, як код досить добре масштабує (хоча відхилення від ідеального масштабування визначити трохи важко). Дивіться, наприклад, сторінки 7 і 8 рисунків 7 і 8 цього * паперу. Вони також дають таблицю з цифрами, що відповідають кожній масштабній фігурі.

Перевагою цього є те, що після надання номерів рецензент може не сказати (або, принаймні, не так багато, що ви не можете спростувати).

* J. Луїтсенс, М. Берзінс. "Підвищення ефективності роботи Uintah: обчислювальна рамка адаптивного сполучення великої шкали", в матеріалах 24-го Міжнародного симпозіуму з паралельної та розподіленої обробки IEEE (IPDPS10), Атланта, штат Джорджія, стор. 1-10. 2010. DOI: 10.1109 / IPDPS.2010.5470437


Будь-який шанс ви могли вставити зображення прямо у свою відповідь?
Арон Ахмадія

Хоча, напевно, справедливо використовую для запозичення їх фігури, я б швидше залучав трафік на сайт авторів. Можливо, я складу деякі цифри та власний графік і повернусь пізніше з цифрою.
Білл Барт

З цього погляду ви можете обернути зображення таким чином, щоб воно посилалось на сайт автора, а також збільшило кількість тексту у посиланні. Якщо ви хочете детальніше обговорити це, я можу відкрити мета / тему для чату.
Арон Ахмадія

@BillBarth Ваше посилання просто перенаправляє їх на домашню сторінку зараз. Не могли б ви її виправити чи вставити призначене зображення?
Джед Браун

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