N>Вероятно, вряд ли, но спрошу, существует ли возможность подключить внешнюю реализацию OpenMP?
OpenMP так хорош именно из-за того, что он реализован не отдельной библиотекой, а интегрирован внутрь компилятора. Единственный способ взять другую реализацию OpenMP — взять другой компилятор. N>Во воторых оно в статике не линкуется и требует тащить за собой dll библиотеку.
Бывают такие особенности реализации. Ну и нужно понимать, что в этой библиотеке совсем не весь OpenMP находится, а лишь какая-то часть runtime поддержки. Основная и самая сложная часть зашита в компиляторе. То есть сменой dll ничего не добиться.
N>И что в итоге лучше, по производительности, записать распаралеливание руками или использовать OpenMP?
Не очень хороший вопрос. Всё равно что спросить, стоит ли продолжать писать на C++ или лучше для производительности переписать всё руками на ассемблере :)
OpenMP позволяет очень просто писать параллельные программы в своей области. И накладные расходы там небольшие. Если задача хорошо ложится на соответствующую модель вычислений, то OpenMP — отличный выбор. Руками переписать можно, но обычно время лучше потратить на что-то более полезное.
Если же задача не ложится на модель вычислений OpenMP, то вопрос про использование просто не встаёт: придётся использовать что-то другое.