Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Support
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Chameleon
Chameleon
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 14
    • Issues 14
    • List
    • Boards
    • Labels
    • Milestones
  • Merge Requests 2
    • Merge Requests 2
  • Packages
    • Packages
    • Container Registry
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Commits
  • Issue Boards
  • solverstack
  • ChameleonChameleon
  • Merge Requests
  • !108

Merged
Opened Aug 10, 2018 by Philippe Virouleau@viroulea
  • Report abuse
Report abuse

Add OpenMP runtime for codelets

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 Oct 11, 2018 by Philippe Virouleau

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch "https://gitlab.inria.fr/viroulea/chameleon.git" "feature-openmp"
git checkout -b "viroulea/chameleon-feature-openmp" FETCH_HEAD

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout "origin/master"
git merge --no-ff "viroulea/chameleon-feature-openmp"

Step 4. Push the result of the merge to GitLab

git push origin "master"

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

  • Discussion 18
  • Commits 15
  • Changes 83
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
0
Labels
None
Assign labels
  • View project labels
Reference: solverstack/chameleon!108

Revert this merge request

This will create a new commit in order to revert the existing changes.

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.

Cherry-pick this merge request

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.