2012-04-23 2 views
1

Учитывая параллельную программу и четко определенное аппаратное обеспечение, как определить его отношение к передаче данных (CCR). Это необходимо для определения гранулярности и последующего анализа программ. Литература описывает этот термин и использует его для связи с детализацией программ, но я не нашел ничего, чтобы оценить CCR, если он высокий или низкий.Как определить отношение «вычисление к связи»

ответ

1

Чтобы сравнить вычисления и связь, вы должны измерять как общее устройство. Вообще-то я бы использовал меру времени. Затем вы можете найти, что программа имеет отношение 80:20 (вычислить: общаться)

Хотя можно утверждать, что соотношение 50:50 является высоким значением для связи, эти цифры действительно имеют смысл только в отношении сопоставимые показатели для других параллельных программ. Итак, если программа A и программа B решают одну и ту же проблему, но A имеет отношение 80:20 и B 70:30, тогда вы можете сделать утверждение, что A делает больше вычислений, чем B в каждом тике часов. Если они не решают одну и ту же проблему, вы можете сравнить себя с яблоками и апельсинами.

И хотя вычисления обычно предпочтительны для связи, снова эти факторы являются относительными. Учитывая программы A и B, уверенность B делает (относительно) больше связи, но также возможно, что B занимает меньше времени, чем A - возможно, B проводит время, отправляя большие сообщения между процессами, в то время как A делает больше дублирования вычислений, чтобы избежать отправки больших Сообщения. Выберите, какую программу вы предпочитаете по любой причине.

Если у вас есть достаточный опыт в этих вопросах, вы можете сделать некоторые обоснованные предположения о соотношении от изучения структуры программы, но в конце концов вам придется измерять ее, чтобы сделать какие-либо разумные выводы.

+0

Согласен. Я думал о том, какие параметры нужно приурочить, чтобы получить это соотношение. Или есть какие-то особенности ядра, которые намекают на это? – marc

+0

Это область, в которой инструменты очень удобны. Для программ MPI я использую Intel VTune, в прошлом я использовал Allinea OPT, и есть некоторые инструменты с открытым исходным кодом. Если вы используете MPI, у вас может быть набор подпрограмм под видом MPE, которые полезны для синхронизации частей программ. При отсутствии таких инструментов вы можете сделать достаточно полезные оценки, вставив операторы синхронизации в свои коды в интересующих вас местах. –

Смежные вопросы