OpenMP flush vs flush(список)
В OpenMP я могу сбросить либо указанный набор переменных, либо весь кеш.
У кого-нибудь есть представление о выполнении этой операции? Имеет ли смысл сбрасывать только те переменные, которые действительно изменились, или "сбрасывать все" так быстро, что мне не о чем беспокоиться?
Я связал списки, которые мне нужно время от времени очищать в моих темах. Должен ли я пройти по списку и очистить каждый элемент отдельно или просто очистить все?
1 ответ
Учитывая рекомендации в стандарте OpenMP 3.1:
Использование флеш- конструкции со списком крайне подвержено ошибкам, и пользователям настоятельно не рекомендуется делать это.
и следующее предложение:
Реализация может реализовать очистку со списком, игнорируя список и рассматривая его так же, как очистку без списка.
Я бы реализовал сначала решение с pragma omp flush
(без какого-либо списка).
Затем, я бы действительно тщательно подумал, прежде чем пытаться оптимизировать эту реализацию, добавив список для сбрасываемых конструкций, так как код не будет переносимым по производительности.