Skip to content

Release 0.2.0 #18

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

Merged
merged 28 commits into from
Apr 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
67a2744
Add python packaging files
ggeorgakoudis Apr 22, 2025
45e1f35
Add pyomp numba extension files
ggeorgakoudis Apr 22, 2025
7f3ba0a
Cleanup openmp testing
ggeorgakoudis Apr 22, 2025
c392b45
Update pyproject.toml, setup.py and clean up
ggeorgakoudis Apr 23, 2025
57ac3d8
Update conda builders and simplify llvm-openmp-dev meta.yaml
ggeorgakoudis Apr 23, 2025
d2d888d
Fix to get commit hash for the pyomp build string
ggeorgakoudis Apr 23, 2025
21bedc0
Add llvmdev dependency in pyomp meta.yaml
ggeorgakoudis Apr 23, 2025
4233b5a
Revert license format in pyomp meta.yaml for backwards compat
ggeorgakoudis Apr 23, 2025
a02c135
Update pyomp meta.yaml for cmake as build dep
ggeorgakoudis Apr 23, 2025
314a5a6
Use the arm64 github runner
ggeorgakoudis Apr 23, 2025
5d76134
Trigger CI
ggeorgakoudis Apr 23, 2025
daebe46
Cleanup github workflow for conda deployment
ggeorgakoudis Apr 23, 2025
ce9f26f
Update gitlab ci
ggeorgakoudis Apr 23, 2025
ebad638
Add tests
ggeorgakoudis Apr 23, 2025
76b66ce
Remove numba.openmp.libs
ggeorgakoudis Apr 23, 2025
f3b25b8
Debug
ggeorgakoudis Apr 24, 2025
9f21ac2
Debug
ggeorgakoudis Apr 24, 2025
e7e31ec
Refactor to fix packaging and cleanup
ggeorgakoudis Apr 24, 2025
6aeecfd
Change again pyproject license for old format
ggeorgakoudis Apr 24, 2025
2c455b7
Do not load libomptarget if there's no gpu to avoid error
ggeorgakoudis Apr 24, 2025
c44a9d4
Fix map_clause parsing
ggeorgakoudis Apr 24, 2025
c0f5def
Revert "Do not load libomptarget if there's no gpu to avoid error"
ggeorgakoudis Apr 24, 2025
b85eab2
Use the compiler driver to create shared lib of host offload targets
ggeorgakoudis Apr 24, 2025
d64b9c9
Clone with full history for versioning in gitlab ci
ggeorgakoudis Apr 25, 2025
5873d15
Simplify github workflows
ggeorgakoudis Apr 25, 2025
fd9df32
Update examples and code
ggeorgakoudis Apr 25, 2025
1548c4b
Update README and RTD conf.py
ggeorgakoudis Apr 25, 2025
8cb57b8
Update README
ggeorgakoudis Apr 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 11 additions & 196 deletions .github/workflows/build-upload-conda-base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,10 @@ on:
label:
required: true
type: string
commit:
required: true
type: string
env:
required: true
type: string

# Rembember: you have to escape characters like $ with \$.
env:
SETUP_BASE: |
apt-get -qq update > /dev/null;
apt-get -qq upgrade > /dev/null;
apt-get -qq install wget git > /dev/null;
useradd -ms /bin/bash pyompuser;
su pyompuser;
cd /home/pyompuser;
SETUP_MINICONDA: |
wget -q https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-\$(uname -m).sh -O miniconda.sh;
bash miniconda.sh -b -u -p ./miniconda3;
rm -rf miniconda.sh;
export PATH=/home/pyompuser/miniconda3/bin:\${PATH};
conda remove --name base conda-anaconda-telemetry
conda install -q -y -c conda-forge conda-build conda-verify anaconda-client;
conda config --set anaconda_upload yes;
SETUP_REPO: |
git clone https://github.com/Python-for-HPC/PyOMP;
cd PyOMP;
git checkout ${{ inputs.commit }};
export GITHUB_HEAD_SHA=${{ inputs.commit }};

jobs:
# Job to deploy llvm-openmp-dev, runs once as it is independent of the python
# version.
Expand All @@ -44,13 +18,10 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
#os: [ubuntu-latest, macOS-latest, windows-latest]
os: [ubuntu-latest, macOS-latest]
# TODO: Add windows.
os: [ubuntu-latest, macOS-latest, ubuntu-24.04-arm]
steps:
- uses: actions/checkout@v4
- name: Set env for HEAD SHA
run:
echo "GITHUB_HEAD_SHA=${{ inputs.commit }}" >> $GITHUB_ENV
- name: Create and activate conda env
uses: conda-incubator/setup-miniconda@v3
with:
Expand All @@ -69,87 +40,22 @@ jobs:
--token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/llvm-openmp-dev;

# Job to deploy llvmlite and numba, matrixed on os and python version.
conda-deploy-llvmlite:
# Job to deploy the pyomp metapackage matrixed on the python version.
conda-deploy-pyomp:
needs: conda-deploy-llvm-openmp-dev
name: llvmlite ${{ matrix.os }} ${{ matrix.python-version }}
name: pyomp ${{ matrix.os }} ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
#os: [ubuntu-latest, macOS-latest, windows-latest]
os: [ubuntu-latest, macOS-latest]
# TODO: Add windows.
os: [ubuntu-latest, macOS-latest, ubuntu-24.04-arm]
python-version: ["3.8", "3.9", "3.10"]
steps:
- uses: actions/checkout@v4
- name: Set env for HEAD SHA
run:
echo "GITHUB_HEAD_SHA=${{ inputs.commit }}" >> $GITHUB_ENV
- name: Create and activate conda env
uses: conda-incubator/setup-miniconda@v3
# Checkout the repo with history to get the commit hash for the build
# string.
with:
python-version: ${{ matrix.python-version }}
environment-file: ${{ inputs.env }}
auto-update-conda: false
auto-activate-base: false
show-channel-urls: true
- name: Build and upload llvmlite
run: |
conda remove --name base conda-anaconda-telemetry
conda install -q -y -c conda-forge conda-build conda-verify anaconda-client;
conda config --set anaconda_upload yes;
conda build --user python-for-hpc --label ${{ inputs.label }} \
-c python-for-hpc -c conda-forge \
--python ${{ matrix.python-version }} --token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/llvmlite;

# Job to deploy numba, matrixed on os and python version.
conda-deploy-numba:
needs: conda-deploy-llvmlite
name: numba ${{ matrix.os }} ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
#os: [ubuntu-latest, macOS-latest, windows-latest]
os: [ubuntu-latest, macOS-latest]
python-version: ["3.8", "3.9", "3.10"]
steps:
- uses: actions/checkout@v4
- name: Set env for HEAD SHA
run:
echo "GITHUB_HEAD_SHA=${{ inputs.commit }}" >> $GITHUB_ENV
- name: Create and activate conda env
uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
environment-file: ${{ inputs.env }}
auto-update-conda: false
auto-activate-base: false
show-channel-urls: true
- name: Build and upload numba
run: |
conda remove --name base conda-anaconda-telemetry
conda install -q -y -c conda-forge conda-build conda-verify anaconda-client;
conda config --set anaconda_upload yes;
conda build --user python-for-hpc --label ${{ inputs.label }} \
-c python-for-hpc -c conda-forge \
--python ${{ matrix.python-version }} --token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/numba;

# Job to deploy the pyomp metapackage, runs once as it is independent of the
# python version.
conda-deploy-pyomp:
needs: conda-deploy-numba
name: pyomp ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
#os: [ubuntu-latest, macOS-latest, windows-latest]
os: [ubuntu-latest, macOS-latest]
steps:
- uses: actions/checkout@v4
- name: Set env for HEAD SHA
run:
echo "GITHUB_HEAD_SHA=${{ inputs.commit }}" >> $GITHUB_ENV
fetch-depth: 0
- name: Create and activate conda env
uses: conda-incubator/setup-miniconda@v3
with:
Expand All @@ -165,97 +71,6 @@ jobs:
conda config --set anaconda_upload yes;
conda build --user python-for-hpc --label ${{ inputs.label }} \
-c python-for-hpc -c conda-forge \
--python ${{ matrix.python-version }} \
--token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/pyomp;

################################################################
# Deploy on ARM64 using QEMU and a docker container for building.
################################################################
conda-deploy-llvm-openmp-dev-linux-arm64:
name: llvm-openmp-dev linux-arm64
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64
- name: Deploy llvm-openmp-dev
run: |
docker run --platform linux/arm64 ubuntu:22.04 /bin/bash -xel -c "
${{ env.SETUP_BASE }}
${{ env.SETUP_MINICONDA }}
${{ env.SETUP_REPO }}
conda build --user python-for-hpc --label ${{ inputs.label }} \
-c python-for-hpc -c conda-forge \
--token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/llvm-openmp-dev;
"

conda-deploy-llvmlite-linux-arm64:
needs: conda-deploy-llvm-openmp-dev-linux-arm64
name: llvmlite linux-arm64
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64
- name: Deploy llvmlite
run: |
docker run --platform linux/arm64 ubuntu:22.04 /bin/bash -el -c "
${{ env.SETUP_BASE }}
${{ env.SETUP_MINICONDA }}
${{ env.SETUP_REPO }}
conda build --user python-for-hpc --label ${{ inputs.label }} \
-c python-for-hpc -c conda-forge \
--python ${{ matrix.python-version}} --token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/llvmlite
"

conda-deploy-numba-linux-arm64:
needs: conda-deploy-llvmlite-linux-arm64
name: numba linux-arm64
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64
- name: Deploy numba
run: |
docker run --platform linux/arm64 ubuntu:22.04 /bin/bash -el -c "
${{ env.SETUP_BASE }}
${{ env.SETUP_MINICONDA }}
${{ env.SETUP_REPO }}
conda build --user python-for-hpc --label ${{ inputs.label }} \
-c python-for-hpc -c conda-forge \
--python ${{ matrix.python-version}} --token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/numba;
"

conda-deploy-pyomp-linux-arm64:
needs: conda-deploy-numba-linux-arm64
name: pyomp linux-arm64
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64
- name: Deploy pyomp
run: |
docker run --platform linux/arm64 ubuntu:22.04 /bin/bash -el -c "
${{ env.SETUP_BASE }}
${{ env.SETUP_MINICONDA }}
${{ env.SETUP_REPO }}
conda build --user python-for-hpc --label ${{ inputs.label }} \
-c python-for-hpc -c conda-forge \
--token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/pyomp;
"
8 changes: 6 additions & 2 deletions .github/workflows/build-upload-conda-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@ name: Deploy conda pkgs (test)

on:
pull_request:
paths:
- "buildscripts/conda-recipes/**"
- ".github/workflows/build-upload-conda-test.yml"
- ".github/workflows/build-upload-conda-base.yml"
- "numba/**"
workflow_dispatch:

jobs:
deploy-conda:
uses: ./.github/workflows/build-upload-conda-base.yml
with:
label: test
commit: ${{ github.event.pull_request.head.sha }}
env: .github/workflows/envs/env-test.yml
secrets: inherit
secrets: inherit
3 changes: 1 addition & 2 deletions .github/workflows/build-upload-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ jobs:
uses: ./.github/workflows/build-upload-conda-base.yml
with:
label: main
commit: ${{ github.sha }}
env: .github/workflows/envs/env.yml
secrets: inherit
deploy-containers:
needs: deploy-conda
uses: ./.github/workflows/build-containers.yml
secrets: inherit
secrets: inherit
2 changes: 0 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,6 @@ stages:
strategy: depend
forward:
pipeline_variables: true
rules:
- if: ($CI_COMMIT_MESSAGE =~ /\[run gitlab ci\]/ || $CI_COMMIT_TAG)

include:
# Sets ID tokens for every job using `default:`
Expand Down
15 changes: 1 addition & 14 deletions .gitlab/jobs/lassen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,21 +66,8 @@ build-llvm-openmp-dev-lassen:
variables:
PYOMP_CI_BUILD_PKG: "llvm-openmp-dev"

build-llvmlite-lassen:
build-pyomp-lassen:
extends: [.base-job, .python-variants]
needs: ["build-llvm-openmp-dev-lassen"]
variables:
PYOMP_CI_BUILD_PKG: "llvmlite"

build-numba-lassen:
extends: [.base-job, .python-variants]
needs: ["build-llvmlite-lassen"]
variables:
PYOMP_CI_BUILD_PKG: "numba"

build-pyomp-lassen:
extends: .base-job
needs: ["build-numba-lassen"]
variables:
PYOMP_CI_BUILD_PKG: "pyomp"

2 changes: 0 additions & 2 deletions .gitlab/subscribed-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
--data "{ \"state\": \"failure\", \"target_url\": \"${CI_PIPELINE_URL}\", \"description\": \"GitLab ${CI_MACHINE} down\", \"context\": \"ci/gitlab/${CI_MACHINE}\" }"
exit 1
fi
rules:
- if: ($CI_COMMIT_MESSAGE =~ /\[run gitlab ci\]/ || $CI_COMMIT_TAG)

###
# Trigger a build-and-test pipeline for a machine.
Expand Down
Loading
Loading