Diferença entre num_threads x omp_set_num_threads vs OMP_NUM_THREADS

Estou bastante confuso sobre as maneiras de especificar o número de threads na parte paralela de um código. Eu sei que posso usar:

a variável ambiental OMP_NUM_THREADSfunção omp_set_num_threads (int)num_threads (int) em#pragma omp parallel for num_threads(NB_OF_THREADS)

O que eu reuni até agora os dois primeiros são equivalentes. Mas e o terceiro? Alguém pode fornecer uma exposição mais detalhada da diferença, não encontrei nenhuma informação na internet sobre a diferença entre 1/2 e 3.

questionAnswers(2)

yourAnswerToTheQuestion