Как использовать трассировку во время выполнения в OpenMP LLVM? - PullRequest
4 голосов
/ 08 марта 2020

Я хочу включить трассировку во время выполнения и посмотреть вывод. Что-то вроде вывода

KD_TRACE(10, ( buff, gtid, schedule, chunk, lb, ub, st ) );

в kmp_dispatch. cpp

См. Это https://elixir.bootlin.com/llvm/latest/source/openmp/runtime/src/kmp_dispatch.cpp#L624

Итак, пока я следовал следующий учебник: https://passlab.github.io/CSE436536/Assignments/project_dev_setup.html Но я не могу увидеть какие-либо выходные данные из трассировщика.

Есть ли определенный файл или что-то, где выходные данные регистрируются? Или он зарегистрирован в терминале?

Я компилирую программу openMP следующим образом:

clang omp1.c -L/PATH/llvm_work/openmp/BUILD/runtime/src   -o omp1

ldd omp1

Это вывод:

linux-vdso.so.1 (0x00007ffdae305000)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fca2f3bb000)

/lib64/ld-linux-x86-64.so.2 (0x00007fca2f7ac000)

Я надеюсь, что это используя OpenMP, я имею сборку из исходного кода, а не libomp.

omp1. c:

#include<stdio.h>
#include "omp.h"

int main()
{
    int i=0;
    #pragma omp parallel for schedule(static)
    for(i=0;i<1000;++i)
    {
        int x = 4+i;
    }
}

Но когда я пытаюсь запустить эту программу, используя та же команда, я получаю сообщение об ошибке.

/tmp/omp2-d969a9.o: In function `main':

omp2.c:(.text+0x1c8): undefined reference to omp_set_num_threads

clang-11: error: linker command failed with exit code 1 (use -v to see invocation)

Может кто-нибудь помочь мне с правильной компиляцией программ openMP с кодом openMP, который я собрал из исходного кода, а также с использованием tracer?

Спасибо .

Ответы [ 2 ]

2 голосов
/ 14 марта 2020

Вам нужно скомпилировать с флагом -fopenmp. Кроме того, вам необходимо иметь отладочную версию среды выполнения (созданную с использованием отладочной информации) + установить переменную среды export KMP_DEBUG=511.

2 голосов
/ 13 марта 2020

Я думаю, вы должны сообщить компилятору, что вы хотите использовать OpenMP через -fopenmp:

clang -fopenmp omp1.c -L/PATH/llvm_work/openmp/BUILD/runtime/src -o omp1
...