Mentions légales du service

Skip to content
Snippets Groups Projects

Add OpenMP runtime for codelets

Merged Philippe Virouleau requested to merge viroulea/chameleon:feature-openmp into master
All threads resolved!

This is a placeholder for my ongoing work attempting to bring OpenMP as a backend runtime for Chameleon.

The current implementation for codelets uses dependent task, the plan is also to add some target version and see how it behaves wrt existing runtimes.

I've "openmp-ified" all codelets, though they have definitely not been extensively tested (or tested at all, for some).

OpenMP doesn't have a "runtime init" or "runtime finalize" as the other runtimes, so we need to put a #pragma omp parallel/#pragma omp master somewhere to create a team of threads that will execute our tasks. The semantic around the parallel region has some constraints (such as no return or jump outside the region from within the region), and I didn't find a great place so far for them yet, so currently it lies directly in the timing files (see timing/time_zpotrf_tile.c for an example).

I'll focus on doing the first experiments on a small subsets of kernels, meanwhile feel free to give me feedback on this!

Edited by Philippe Virouleau

Merge request reports

Checking pipeline status.

Merged by Mathieu FavergeMathieu Faverge 6 years ago (Dec 11, 2018 9:36am UTC)

Merge details

  • Changes merged into with 5dc364ef.
  • Did not delete the source branch.

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Philippe Virouleau, le ven. 10 août 2018 09:54:12 +0200, a ecrit:

    OpenMP doesn't have a "runtime init" or "runtime finalize" as the other runtimes, so we need to put a #pragma omp parallel/#pragma omp master somewhere to create a team of threads that will execute our tasks. The semantic around the parallel region has some constraints (such as no return or jump outside the region from within the region), and I didn't find a great place so far for them yet, so currently it lies directly in the timing files (see timing/ time_zpotrf_tile.c for an example).

    I guess we could make them runtime-provided macros then.

  • Let's avoid the macros if possible. It seems that some people on similar project have troubles to understand them :P.

    But I think we will have no choice. I'll check where we can put them, but I think we can do better than the timing.

  • Thanks @viroulea !

    We indeed need to think further about this init/finalize issue.

    Don't know if it is quick to add it to all timing routines until we find a more robust solution so that we can test all the routines?

  • added 1 commit

    • fc555efc - add more params into xp output

    Compare with previous version

  • added 28 commits

    Compare with previous version

  • Philippe Virouleau resolved all discussions

    resolved all discussions

  • Philippe Virouleau unmarked as a Work In Progress

    unmarked as a Work In Progress

  • added 1 commit

    Compare with previous version

  • added 1 commit

    • e92ae846 - Fix semi colon messing up with pragma

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 64 commits

    • a7384302...55938b98 - 58 commits from branch solverstack:master
    • af6dd0d8 - Add OpenMP in codelets
    • c65cc982 - add more params into xp output
    • 35353a96 - Cleanup
    • 33dd497c - Fix semi colon messing up with pragma
    • 8f68e367 - Various fixes for QR.
    • b12f1fa0 - Merge branch 'feature-openmp' of gitlab.inria.fr:viroulea/chameleon into feature-openmp

    Compare with previous version

  • added 2 commits

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • Mathieu Faverge resolved all discussions

    resolved all discussions

  • @faverge @agullo: I have updated this merge request with CI for OpenMP, and fixed the last issues I had with some tests.

  • @viroulea Thanks for your effort to pass all tests. For me, it is now ready for integration. Green light.

  • Mathieu Faverge
  • Mathieu Faverge
  • Mathieu Faverge
  • Mathieu Faverge mentioned in merge request !131 (merged)

    mentioned in merge request !131 (merged)

  • added 1 commit

    • cc0a419b - Use VLA instead of malloc for scratch

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 14 commits

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • mentioned in issue #67 (closed)

  • added 3 commits

    Compare with previous version

  • Mathieu Faverge resolved all discussions

    resolved all discussions

  • added 1 commit

    • 916db50e - Final fixes to make tests pass

    Compare with previous version

  • @faverge I've just fixed the last tests after our modifications from yesterday.

    Everything's green now!

  • Mathieu Faverge
  • Just one for the fun. It would be nice, it you could update the dates to 2018 in the Copyright with a sed command. I don't know why what we did didn't work.

  • Philippe Virouleau resolved all discussions

    resolved all discussions

  • added 1 commit

    • 4b20960f - Final fixes to make tests pass

    Compare with previous version

  • Because we changed 2017 to 2018, whereas most of them were last updated in 2016!

    I updated the PR to fix the comment style and change the copyrights.

  • Can you please restart the parsec testing (It's failing once in a while) So I can merge it. Thanks

  • added 17 commits

    Compare with previous version

  • Mathieu Faverge mentioned in commit 5dc364ef

    mentioned in commit 5dc364ef

  • Please register or sign in to reply
    Loading