Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Flang][OpenMP][OMPT] Warning for loop types not needed anymore #112545

Open
Thyre opened this issue Oct 16, 2024 · 0 comments
Open

[Flang][OpenMP][OMPT] Warning for loop types not needed anymore #112545

Thyre opened this issue Oct 16, 2024 · 0 comments

Comments

@Thyre
Copy link

Thyre commented Oct 16, 2024

Back in #63904, I've reported that the OpenMP Tools Interface implementation in LLVM fails to transfer the loop type to an attached tool, giving only a limited amount of information.

At some point between the reported issue and #97429, a warning was added for Flang explicitly:

OMP: Warning #189: OMPT: Cannot determine workshare type; using the default (loop) instead. This issue is fixed in an up-to-date compiler.

Back when the issue was not fixed in libomp, the warning was a bit weird, as the issue was not fixed in an up-to-date compiler. However, the issue is now irrelevant, as the information is transferred correctly:

program parallel_sum
    use omp_lib
    implicit none

    integer(8) :: sum
    integer :: i

    sum = 0

    call omp_set_num_threads( 2 )

    !$omp parallel do reduction(+:sum) default(none)
    do i = 0, 99
        sum = sum + i
    end do
    !$omp end parallel do

    !$omp parallel do reduction(+:sum) default(none) schedule(static)
    do i = 0, 99
        sum = sum + i
    end do
    !$omp end parallel do

    !$omp parallel do reduction(+:sum) default(none) schedule(dynamic)
    do i = 0, 99
        sum = sum + i
    end do
    !$omp end parallel do

    !$omp parallel do reduction(+:sum) default(none) schedule(guided)
    do i = 0, 99
        sum = sum + i
    end do
    !$omp end parallel do

    !$omp parallel do reduction(+:sum) default(none) schedule(auto)
    do i = 0, 99
        sum = sum + i
    end do
    !$omp end parallel do

    !$omp parallel do reduction(+:sum) default(none) schedule(runtime)
    do i = 0, 99
        sum = sum + i
    end do
    !$omp end parallel do

end program parallel_sum

Attaching a basic information dumping tool, the following information is obtained:

$ flang --version
flang version 20.0.0git (https://github.com/llvm/llvm-project.git 77f8297c6fdaa62121ddb108043dcaad5c45c7ad)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/apps/software/Clang/trunk/bin
Build config: +assertions
$ flang -fopenmp test.f90
flang-20: warning: OpenMP support in flang is still experimental [-Wexperimental-option]
$ ./a.out | grep "callback_work"
OMP: Warning #189: OMPT: Cannot determine workshare type; using the default (loop) instead. This issue is fixed in an up-to-date compiler.
[0][callback_work] work_type = loop_static | endpoint = begin | parallel_data->value = 666000001 (0x55b5b7030f60) | task_data->value = 555000002 (0x55b5b7039640) | count = 100 | codeptr_ra = 0x55b5b591b310
[0][callback_work] work_type = loop_static | endpoint = end | parallel_data->value = 666000001 (0x55b5b7030f60) | task_data->value = 555000002 (0x55b5b7039640) | count = 0 | codeptr_ra = 0x55b5b591b34d
[1][callback_work] work_type = loop_static | endpoint = begin | parallel_data->value = 666000001 (0x55b5b7030f60) | task_data->value = 555000003 (0x55b5b7039780) | count = 100 | codeptr_ra = 0x55b5b591b310
[1][callback_work] work_type = loop_static | endpoint = end | parallel_data->value = 666000001 (0x55b5b7030f60) | task_data->value = 555000003 (0x55b5b7039780) | count = 0 | codeptr_ra = 0x55b5b591b34d
[0][callback_work] work_type = loop_static | endpoint = begin | parallel_data->value = 666000002 (0x55b5b7030f60) | task_data->value = 555000004 (0x55b5b7039640) | count = 100 | codeptr_ra = 0x55b5b591b140
[0][callback_work] work_type = loop_static | endpoint = end | parallel_data->value = 666000002 (0x55b5b7030f60) | task_data->value = 555000004 (0x55b5b7039640) | count = 0 | codeptr_ra = 0x55b5b591b17d
[1][callback_work] work_type = loop_static | endpoint = begin | parallel_data->value = 666000002 (0x55b5b7030f60) | task_data->value = 555000005 (0x55b5b7039780) | count = 100 | codeptr_ra = 0x55b5b591b140
[1][callback_work] work_type = loop_static | endpoint = end | parallel_data->value = 666000002 (0x55b5b7030f60) | task_data->value = 555000005 (0x55b5b7039780) | count = 0 | codeptr_ra = 0x55b5b591b17d
[0][callback_work] work_type = loop_dynamic | endpoint = begin | parallel_data->value = 666000003 (0x55b5b7030f60) | task_data->value = 555000006 (0x55b5b7039640) | count = 100 | codeptr_ra = 0x55b5b591af5f
[1][callback_work] work_type = loop_dynamic | endpoint = begin | parallel_data->value = 666000003 (0x55b5b7030f60) | task_data->value = 555000007 (0x55b5b7039780) | count = 100 | codeptr_ra = 0x55b5b591af5f
[0][callback_work] work_type = loop_dynamic | endpoint = end | parallel_data->value = 666000003 (0x55b5b7030f60) | task_data->value = 555000006 (0x55b5b7039640) | count = 0 | codeptr_ra = 0x55b5b591af82
[1][callback_work] work_type = loop_dynamic | endpoint = end | parallel_data->value = 666000003 (0x55b5b7030f60) | task_data->value = 555000007 (0x55b5b7039780) | count = 0 | codeptr_ra = 0x55b5b591af82
[0][callback_work] work_type = loop_guided | endpoint = begin | parallel_data->value = 666000004 (0x55b5b7030f60) | task_data->value = 555000008 (0x55b5b7039640) | count = 100 | codeptr_ra = 0x55b5b591ad8f
[1][callback_work] work_type = loop_guided | endpoint = begin | parallel_data->value = 666000004 (0x55b5b7030f60) | task_data->value = 555000009 (0x55b5b7039780) | count = 100 | codeptr_ra = 0x55b5b591ad8f
[1][callback_work] work_type = loop_guided | endpoint = end | parallel_data->value = 666000004 (0x55b5b7030f60) | task_data->value = 555000009 (0x55b5b7039780) | count = 0 | codeptr_ra = 0x55b5b591adb2
[0][callback_work] work_type = loop_guided | endpoint = end | parallel_data->value = 666000004 (0x55b5b7030f60) | task_data->value = 555000008 (0x55b5b7039640) | count = 0 | codeptr_ra = 0x55b5b591adb2
[0][callback_work] work_type = loop_guided | endpoint = begin | parallel_data->value = 666000005 (0x55b5b7030f60) | task_data->value = 555000010 (0x55b5b7039640) | count = 100 | codeptr_ra = 0x55b5b591abbf
[0][callback_work] work_type = loop_guided | endpoint = end | parallel_data->value = 666000005 (0x55b5b7030f60) | task_data->value = 555000010 (0x55b5b7039640) | count = 0 | codeptr_ra = 0x55b5b591abe2
[1][callback_work] work_type = loop_guided | endpoint = begin | parallel_data->value = 666000005 (0x55b5b7030f60) | task_data->value = 555000011 (0x55b5b7039780) | count = 100 | codeptr_ra = 0x55b5b591abbf
[1][callback_work] work_type = loop_guided | endpoint = end | parallel_data->value = 666000005 (0x55b5b7030f60) | task_data->value = 555000011 (0x55b5b7039780) | count = 0 | codeptr_ra = 0x55b5b591abe2
[0][callback_work] work_type = loop_static | endpoint = begin | parallel_data->value = 666000006 (0x55b5b7030f60) | task_data->value = 555000012 (0x55b5b7039640) | count = 100 | codeptr_ra = 0x55b5b591a9ef
[0][callback_work] work_type = loop_static | endpoint = end | parallel_data->value = 666000006 (0x55b5b7030f60) | task_data->value = 555000012 (0x55b5b7039640) | count = 0 | codeptr_ra = 0x55b5b591aa12
[1][callback_work] work_type = loop_static | endpoint = begin | parallel_data->value = 666000006 (0x55b5b7030f60) | task_data->value = 555000013 (0x55b5b7039780) | count = 100 | codeptr_ra = 0x55b5b591a9ef
[1][callback_work] work_type = loop_static | endpoint = end | parallel_data->value = 666000006 (0x55b5b7030f60) | task_data->value = 555000013 (0x55b5b7039780) | count = 0 | codeptr_ra = 0x55b5b591aa12

This matches the information obtained with a C / C++ source code.
Therefore, the warning can probably just be removed.

@github-actions github-actions bot added the flang Flang issues not falling into any other category label Oct 16, 2024
@EugeneZelenko EugeneZelenko added flang:openmp and removed flang Flang issues not falling into any other category labels Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants