У меня была та же проблема, и для выполнения установки pip внутри virtualenv мне пришлось использовать эту команду:
RUN pip install virtualenv virtualenvwrapper
RUN mkdir -p /opt/virtualenvs
ENV WORKON_HOME /opt/virtualenvs
RUN /bin/bash -c "source /usr/local/bin/virtualenvwrapper.sh \
&& mkvirtualenv myapp \
&& workon myapp \
&& pip install -r /mycode/myapp/requirements.txt"
Надеюсь, это поможет.
Вы можете определить пользовательское сокращение следующим образом:
#pragma omp declare reduction \
(addps:__m128:omp_out+=omp_in) \
initializer(omp_priv=_mm_setzero_ps())
А затем использовать его следующим образом:
#pragma omp parallel for reduction(addps:average)
for(size_t k = 0; k < size * ch; k += ch)
{
average += _mm_loadu_ps(data+k);
}
Я думаю, что самое важное, openmp должен знать, как получите нейтральный элемент (здесь _mm_setzero_ps()
) для вашего сокращения.
Полный рабочий пример: https://godbolt.org/z/Fpqttc
Интересная ссылка: http://pages.tacc.utexas.edu/~eijkhout /pcse/html/omp-reduction.html#User-definedreductions