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

Toast 3 Work in Progress #369

Draft
wants to merge 649 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
649 commits
Select commit Hold shift + click to select a range
680578c
made use_hybrid a parameter of the pipeline class rather than an input
Mar 2, 2023
8862a77
updated comment
Mar 2, 2023
70ac6ea
tweak comments
Mar 2, 2023
7c9d1c2
renamed env var
Mar 2, 2023
d4d2f5e
run formatter
Mar 2, 2023
db3c194
remove supports_accel (not needed due to trait)
Mar 2, 2023
c1bc37b
Merge pull request #644 from hpc4cmb/hybrid_pipeline
nestordemeure Mar 3, 2023
2b3bed1
Overhaul SSO flagging, improve unit test (#646)
keskitalo Mar 9, 2023
4db72b5
Tweak tolerances for detdata equality tests. (#647)
tskisner Mar 10, 2023
87479b7
Bump pre-release
tskisner Mar 13, 2023
c82f285
added TOAST_GPU_HYBRID_PIPELINES to init file
Mar 21, 2023
24b7ef6
TOAST_FUNCTIME can now be set to false/0 to disable it
Mar 21, 2023
3c4f3ac
Add option to write co-add in single precision (#648)
keskitalo Mar 22, 2023
595efe5
Fix binmap parameter (#640)
keskitalo Mar 22, 2023
fbafae6
improved gpu memory fraction computation
Mar 22, 2023
ac4313f
Toast3 demod units (#649)
keskitalo Mar 22, 2023
73996d0
updated jax_accel_assign_device to deal with the case where there are…
Mar 23, 2023
18b3a8a
improved doc
Mar 23, 2023
6ed39cd
improved message
Mar 23, 2023
433d218
made get_environement_nb_devices more general
Mar 23, 2023
d8b642e
improved device picking message
Mar 23, 2023
f7ab5ef
Merge pull request #650 from hpc4cmb/benchmark
nestordemeure Mar 23, 2023
34e5d42
updated pick device for multi process / multinodes
Mar 31, 2023
8de9d04
reintroduced initialize
Mar 31, 2023
819bb46
Merge pull request #651 from hpc4cmb/benchmark
nestordemeure Apr 2, 2023
666279f
fixed size problem in offset jax kernels
Apr 4, 2023
7fc86e1
simplified offset jax kernels
Apr 4, 2023
94f25a4
fixed offset C++ kernels
Apr 4, 2023
5bf26b0
backported C++ fix to JAX kernel
Apr 4, 2023
d9c510a
formated source
Apr 4, 2023
51d490a
fixes to get various versions running
Apr 5, 2023
7337038
updates
Apr 5, 2023
d3493e2
fixed typo in jax noise kernel
Apr 6, 2023
6dd58e9
deleted old offset kernel implementation
Apr 6, 2023
5513a55
updated pipeline to use_accel=False, fixed bug due to template initia…
Apr 7, 2023
1456a46
changed use_accel default in traits and operators
Apr 7, 2023
b764db8
improved propagation of use_accel in mapmaker
Apr 7, 2023
d2b496d
Allocate thread-local variables outside of for loop, to avoid large s…
tskisner Apr 7, 2023
26b98b2
fixes template reinitialization, defaulted most use_accel to None
Apr 7, 2023
31b56df
Merge branch 'toast3' into benchmark
nestordemeure Apr 7, 2023
13d3388
Merge pull request #654 from hpc4cmb/benchmark
nestordemeure Apr 7, 2023
8c91031
added function timing on data movement
Apr 7, 2023
e694ff8
remove additional dispatch call in default kernels
Apr 7, 2023
eb64ae5
added data movement information displaying at the end of the benchmarks
Apr 7, 2023
4d3c1bd
fixed use_accel passed twice to scanmap
Apr 7, 2023
bf8da08
added timing merging script
Apr 7, 2023
5a72ce5
fixed noise weight infinite recursion
Apr 7, 2023
21c0436
further simplified merged row names
Apr 7, 2023
869e0bc
improved row names
Apr 7, 2023
bda8c59
improved performance of offset kernels
Apr 8, 2023
ee111bb
added kernel summary functionality to merge timing script
Apr 8, 2023
92d7f36
moved more datatype to default datamovements funtion for improved tra…
Apr 8, 2023
89241ec
jax interval data movements are now time tracked
Apr 8, 2023
cbe3989
Merge pull request #655 from hpc4cmb/benchmark
nestordemeure Apr 10, 2023
eca0b59
Multi flavor mapmaking (#656)
keskitalo Apr 14, 2023
a538056
Refactor of OpenMP target operations (#652)
tskisner Apr 16, 2023
fd79c2d
Fix typo
tskisner Apr 16, 2023
d0da015
Fix print statement appearing on all processes
tskisner Apr 16, 2023
bb2896e
bring kernel improvements into the branch
Apr 17, 2023
a630d41
reintroduced function_datamovementtracker in kernel_registry.py
Apr 17, 2023
b89ae9f
cleaned up jax version of accel reset
Apr 17, 2023
ba7bd49
cleaned up name for scanmap_compiled
Apr 17, 2023
0daa22b
cleaned-up doc of noise_weight jax as detector_weight is now a numpy …
Apr 17, 2023
7ef232c
fixed typos
Apr 17, 2023
8f586ac
removed timer from jax set item as it is now covered by accel_reset
Apr 17, 2023
d208ea8
Fix error in counting observing time for horizontal scans (#658)
keskitalo Apr 18, 2023
eb27529
improved reset
Apr 18, 2023
cec8b19
ran formatter
Apr 24, 2023
22a5c46
Merge pull request #657 from hpc4cmb/jaxfix
nestordemeure Apr 24, 2023
d29d56f
Improvements to accelerator data movement (#667)
tskisner May 24, 2023
5edd208
recycled memory when reshaping
May 24, 2023
0ca8204
Merge pull request #671 from hpc4cmb/jax_reshape
nestordemeure May 25, 2023
8aa21f3
Common mode fix (#665)
giuspugl May 26, 2023
d8d80c3
More scheduler tweaks (#662)
keskitalo Jun 5, 2023
7401963
Address PR review
keskitalo Jun 6, 2023
edf3d81
Obs matrix work (#670)
keskitalo Jun 16, 2023
caf90ba
Update default StokesWeights operator (#663)
tskisner Jun 21, 2023
a904e2b
Collection of improvements for working with real ground data (#664)
tskisner Jun 23, 2023
7af49cf
Test release (#675)
tskisner Jul 5, 2023
f0de2ac
removed additional input to stokes_weights_IQU_inner
Jun 21, 2023
69904c0
small refactor
Jun 21, 2023
9683940
put SimStokesWeightsTest in a pipeline to test gpu operators
Jun 21, 2023
28740b0
merged the stokes_weights_IQU_inner implementations
Jun 21, 2023
166de06
small formaing improvements
Jul 11, 2023
742c940
made prefix path optional to nvhpc built script
Jul 11, 2023
37b80e4
formated sources
Jul 13, 2023
0f2766d
remove debugging comments
Jul 14, 2023
90e19b4
Merge pull request #673 from hpc4cmb/bugfix
nestordemeure Jul 14, 2023
041e29e
updated scanmap and stockes_weights_IQU loops
Jul 14, 2023
55426f9
ported all operators used in the sat bench
Jul 14, 2023
b979bbb
fixed the array used to find the maximum interval size
Jul 15, 2023
b994301
simplified template project code
Jul 17, 2023
5e87725
improved the project function
Jul 17, 2023
1b4307e
turned loops in tests into tests in loops
Jul 17, 2023
47e29ac
reversed test readability improvement
Jul 17, 2023
3bf1c88
updated all kernels to new loop design
Jul 18, 2023
88f28be
formated code
Jul 18, 2023
9218cd4
Merge pull request #676 from hpc4cmb/omploop
nestordemeure Jul 18, 2023
51f708a
set mpi4py.rc.thread_level (#679)
ickc Jul 19, 2023
a915698
Small tweaks for LLVM compilation (#677)
tskisner Jul 24, 2023
fd03af0
Fix the simulated focalplane layout spacing. (#674)
tskisner Jul 25, 2023
b5f3c3f
make entry points callable as python modules (#680)
ickc Jul 25, 2023
dd0678f
Bump release version
tskisner Jul 25, 2023
4b5d944
improved the performance of the healpix kernel
Jul 25, 2023
9977f16
added note
Jul 25, 2023
848d4ca
ran formater
Jul 25, 2023
da19bcb
Merge pull request #682 from hpc4cmb/jaxperf
nestordemeure Jul 26, 2023
63240f3
Enable wheel tests prior to tag (#681)
tskisner Jul 27, 2023
6a03ec9
Debugging sporadic failure of copying build products into wheels (#683)
tskisner Jul 27, 2023
17e8893
replaced DeviceArray with Jax.Array to comply with the jax.Array migr…
Aug 8, 2023
92b6342
Merge pull request #688 from hpc4cmb/jaxupdate
nestordemeure Aug 8, 2023
5f82e29
Bump release tag
tskisner Jul 27, 2023
f8e319e
Add qpoint option to pointing conversion (#686)
keskitalo Aug 9, 2023
0c2c97c
Add compress_detdata to save_hdf5 operator (#687)
keskitalo Aug 9, 2023
150f53f
Attempt to get wheel builds finding static libFLAC. (#691)
tskisner Aug 16, 2023
7615cfd
Implement a new mapmaking template for periodic signals (#690)
tskisner Aug 16, 2023
2fc81d6
Fix save/load of simulated weather parameters. (#692)
tskisner Aug 17, 2023
dde70d7
Bump tag
tskisner Aug 17, 2023
cde33e3
fix broken scheduling mode (#694)
keskitalo Aug 17, 2023
485736a
Extract HDF5 observation metadata loading into a separate function (#…
tskisner Sep 13, 2023
4de4bc3
Fix flagging of noise model fits (#698)
tskisner Sep 13, 2023
68c6e4b
Schedule field separator (#697)
keskitalo Sep 20, 2023
3980cbb
Unwrap the HWP angle before perturbing and guard against stepped HWP …
keskitalo Sep 20, 2023
cc580d7
Dc0 tweaks (#693)
keskitalo Oct 9, 2023
94ea510
Pointing Matrix Cleanup (#702)
tskisner Oct 10, 2023
af3c814
Work on refactoring config files and build scripts (#696)
tskisner Oct 10, 2023
340e45e
Bump release string and test wheels (#703)
tskisner Oct 11, 2023
24431d1
Stokes_weights fixes (#704)
nestordemeure Oct 12, 2023
05bf438
Recognize the healpy column_units keyword (#705)
keskitalo Oct 17, 2023
ad6589f
Make polynomial regression more robust (#706)
keskitalo Oct 17, 2023
c729e8c
Add missing WCS support to filterbin (#708)
keskitalo Oct 23, 2023
8fc154e
Add missing units to CovarianceAndHits call (#709)
keskitalo Oct 23, 2023
6022fce
Handle cases where all filters are disabled (#711)
keskitalo Oct 26, 2023
8df804c
Handle overdefined problems (#710)
keskitalo Oct 26, 2023
861bb30
Az-tracking raster scans (#712)
keskitalo Oct 27, 2023
1b2557b
Support passing 'None' string in commandline or dictionary argument t…
tskisner Oct 31, 2023
97c6012
Update perlmutter configs for omp target offload (#714)
tskisner Nov 7, 2023
bbd108d
Extend bandpass (#716)
keskitalo Dec 1, 2023
124a189
fixed jax_accel_wrap test
Dec 4, 2023
3964169
added xmap / imap
Dec 4, 2023
69ff53a
small refactoring
Dec 4, 2023
5b45633
small cleanup
Dec 4, 2023
e315364
updated comments for polyfilter
Dec 4, 2023
85d42fe
ported pointing_detector
Dec 5, 2023
841ce87
ported scan_map
Dec 5, 2023
9655d11
ported noise_weight
Dec 5, 2023
7cee011
pored pixels_healpix
Dec 5, 2023
e4d2058
ported stokes_weights_IQU
Dec 5, 2023
a7b8c14
ported stokes_weights_I
Dec 5, 2023
b62266c
updated build_noise
Dec 5, 2023
496374e
ported offset_add_to_signal
Dec 5, 2023
59dcbe3
ported offset_project_signal
Dec 5, 2023
ec27fdb
removed previous implementation
Dec 5, 2023
a997686
cleaned up intervals file
Dec 5, 2023
3825d05
interval max length can now be used explicitly as an axis
Dec 6, 2023
8e0921a
improve error (invalid inputs/outputs) catching at runtime
Dec 6, 2023
81b7c90
added asserts to check shape and types of inputs
Dec 6, 2023
c60bd92
hunting performance regression
Dec 7, 2023
107b8ab
removed comment
Dec 7, 2023
c34bc8f
trying vmap version
Dec 7, 2023
768bde3
cleaned code
Dec 8, 2023
cf2d3cc
small improvements to mapping function
Dec 9, 2023
43243b4
fix git checkout toast3 on Windows (#719)
ickc Dec 11, 2023
994c847
added a where option to imap
Dec 12, 2023
e0d1cfc
put block structure back in offset_project_signal
Dec 12, 2023
c8c1521
fixed block index
Dec 13, 2023
30042f0
small cleanup
Dec 13, 2023
2510d80
fixed cond else case
Dec 13, 2023
3186861
formated code
Dec 13, 2023
d24a5fe
Merge pull request #717 from hpc4cmb/jax_interval_map
nestordemeure Dec 13, 2023
1b17c7e
better timing (#722)
keskitalo Dec 19, 2023
a857f1f
Improve flagging and noise estimation (#695)
tskisner Jan 4, 2024
e38b8a0
Make sure noise estimation output directory exists
keskitalo Jan 5, 2024
e0d6c3e
added amplitude_flags logic to offset_apply_diag_precond_jax
Jan 9, 2024
bb5236c
added amplitude_flags logic to offset_project_signal_jax
Jan 9, 2024
10cb473
added amplitude_flags logic to offset_add_to_signal_jax
Jan 9, 2024
d3c51ca
formatted code
Jan 9, 2024
54358ea
Fix a small bug and implement use of offset amplitude flags in compil…
tskisner Jan 25, 2024
59c9bba
Merge pull request #726 from hpc4cmb/jax_templates
nestordemeure Jan 25, 2024
f62013b
Fix parallelization problems in noise estimation (#728)
keskitalo Jan 26, 2024
156b9c8
Fix a sign error in the recently merged noise estimation PR
keskitalo Jan 26, 2024
280e252
Overhaul configuration system (#729)
tskisner Jan 27, 2024
9436a42
Testing that wheel building is working (#731)
tskisner Jan 30, 2024
1e139bd
Remove unnecessary flag bits (#732)
keskitalo Jan 31, 2024
8ca467d
Tweaks 12 2023 (#723)
keskitalo Jan 31, 2024
5c0aa40
Continuous Integration Updates (#733)
tskisner Feb 1, 2024
be85782
When parsing config files, handle compatible types (#734)
tskisner Feb 2, 2024
c2ac5a7
Fix timer imports, run isort and black on scripts (#737)
keskitalo Feb 12, 2024
f9efa57
Implement a mapmaking template for HWP synchronous signal (#736)
tskisner Mar 6, 2024
54132fb
Improve YAML config loading (#740)
tskisner Mar 6, 2024
f0162ab
Make AzimuthIntervals more robust (#741)
tskisner Mar 8, 2024
d6e99d6
Check for zenith in the scan range (#742)
keskitalo Mar 8, 2024
9ecc50e
Observation matrix class (#735)
keskitalo Mar 9, 2024
d32e576
Fix flagging unfiltered data (#745)
keskitalo Mar 12, 2024
324fb07
Single detector support (#743)
keskitalo Mar 12, 2024
63520a5
Restore HWP Stokes model changes (#748)
tskisner Mar 18, 2024
1f41949
Use the start and stop times to make the session ID more unique (#747)
keskitalo Mar 18, 2024
455113d
Small fixes to make entry points for visualization functions (#746)
tskisner Mar 18, 2024
e6e0c0b
Sat sim tweaks2 (#725)
keskitalo Mar 19, 2024
004d5bf
Bump release
tskisner Mar 21, 2024
f38b749
Implement an operator for quick-and-dirty white noise modeling (#751)
keskitalo Mar 25, 2024
e248f05
Small update to plotting (#752)
tskisner Mar 27, 2024
3c965da
Do not redistribute data unless computing cross spectra. (#753)
tskisner Apr 26, 2024
d2ad97e
Pin suitesparse version to before 7.3 API change. (#755)
tskisner May 3, 2024
bf711e8
Act atmo calib (#754)
keskitalo May 13, 2024
b1540cb
Refactor of WCS pixelization operator (#757)
tskisner May 13, 2024
ff60a67
Format source and prepare for tag (#758)
tskisner May 13, 2024
cc499c8
Work on fixing wheels. (#759)
tskisner May 14, 2024
ef6505d
Sim ground fix (#760)
keskitalo May 23, 2024
0f51dac
Add a sidereal targeting mode (#761)
keskitalo Jun 3, 2024
4d8f4bf
Do not try to invert 0-dimensioned covariance matrices (#762)
keskitalo Jun 5, 2024
809a046
Small fixes (#764)
tskisner Jun 10, 2024
697eefd
Improve checks of azimuth range for atmosphere simulation (#763)
sbiquard Jun 10, 2024
ee6c71e
Add processing bit to non-science shared mask (#765)
tskisner Jun 17, 2024
fe82119
Extend syntax to support multiple flavors (#767)
keskitalo Jun 17, 2024
d67f53e
Expand the list of supported units (#768)
keskitalo Jun 17, 2024
cefa0a8
Fix parsing rectangular patches that cross the zero meridian (#769)
keskitalo Jun 18, 2024
da7db6a
Ensure that hdf5 attributes are stored as base python types (#770)
tskisner Jun 18, 2024
1cab0d1
Test wheel builds (#771)
tskisner Jun 19, 2024
8d460e6
Extend scan-synchronous signal to have polarization (#772)
keskitalo Jun 27, 2024
dbecf54
Pin numpy and scipy to old versions temporarily (#774)
tskisner Jun 27, 2024
71b44c5
Various small fixes (#773)
tskisner Jun 27, 2024
cbcd06a
Polarized sss (#775)
keskitalo Aug 14, 2024
f7d4332
Add option to reject scans too close to North or South (#778)
keskitalo Aug 15, 2024
2ad64fd
Add option in the detector pointing operator to deflect the pointing …
keskitalo Aug 16, 2024
0cec1fd
Various fixes and features for dealing with realistic data. (#777)
tskisner Aug 16, 2024
2e9a45c
Change HWP deflection of detector pointing to not alter polarization …
tskisner Aug 19, 2024
cc7a91a
Bump Release (#780)
tskisner Aug 19, 2024
5b94c5d
dtype member was removed. Double precision is default. (#781)
keskitalo Aug 26, 2024
1a0e214
Remove hard-coded noise model name (#782)
tskisner Aug 26, 2024
a122bae
fix trait validation in noise_estimation.py (#786)
sbiquard Sep 6, 2024
b320f57
The flatten generator expression can not be converted directly to an …
tskisner Sep 6, 2024
04fa343
Apply coadd to only non-zero pixels (#787)
keskitalo Sep 24, 2024
002e9b4
Interpolate healpix maps (#784)
keskitalo Sep 25, 2024
4385b89
When demodulating data, preserve the observing session. (#788)
tskisner Sep 25, 2024
7cec794
Phase 1 tweaks (#789)
keskitalo Sep 30, 2024
becab21
Add method to sort observing schedule by RA (#790)
keskitalo Oct 3, 2024
d5089cf
Implement Operator loader pattern on execution (#792)
tskisner Oct 3, 2024
c0b0dbe
New operator for estimating HWP synchronous signal (#791)
tskisner Oct 14, 2024
a023a33
Fix not using given `det_mask` bit mask
Bai-Chiang Oct 16, 2024
b540ae2
Change default bit mask
Bai-Chiang Oct 16, 2024
275f0d7
Replace scipy.signal.fftconvolve with scipy.signal.convolve
Bai-Chiang Oct 11, 2024
6c90ba9
Simplify for loop when calculating sigma
Bai-Chiang Oct 11, 2024
e37f227
Fix only find the maximum jump
Bai-Chiang Oct 11, 2024
3a1f6a6
Avoid repeated calculation total number of samples
Bai-Chiang Oct 11, 2024
2a395dc
Make sure indices within range.
Bai-Chiang Oct 11, 2024
7daeea1
deglitch and jump correct: Fix ignoring given `det_mask` and change d…
Bai-Chiang Oct 17, 2024
ceb8d47
toast.ops.SimpleJumpCorrect: Remove unused `medfilt_kernel_size` option.
Bai-Chiang Oct 18, 2024
4b2c5b8
Merge pull request #793 from Bai-Chiang/jump_finder_fix
Bai-Chiang Oct 22, 2024
bd4313f
Many updates related to packaging: (#783)
tskisner Oct 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 0 additions & 22 deletions .atom/config.cson

This file was deleted.

9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
206 changes: 102 additions & 104 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,128 +7,126 @@ on:
tags:
- '*'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.TWINE_TOKEN }}

jobs:
sdist:
name: Python source dist
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Install Dependencies
run: pip install twine
- name: Pull Dependency Image
run: docker pull hpc4cmb/toast-deps-py37:latest
- name: Create dist directory
run: mkdir -p dist && rm -f dist/*
- name: Build source package
run: docker run -v "$(pwd)":/home/toast hpc4cmb/toast-deps-py37:latest /home/toast/wheels/build_sdist.sh
- name: Upload to PyPI
run: |
python -m twine upload dist/toast*.tar.gz
wheels-36:
name: Python 3.6 wheels for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
env:
CIBW_BUILD: cp36-macosx_x86_64 cp36-manylinux_x86_64
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010
CIBW_MANYLINUX_I686_IMAGE: manylinux2010
CIBW_BUILD_VERBOSITY: 3
CIBW_ENVIRONMENT_LINUX: "PATH=/usr/lib64/mpich-3.2/bin:${PATH} TOAST_BUILD_BLAS_LIBRARIES='-lopenblas -fopenmp -lm -lgfortran' TOAST_BUILD_LAPACK_LIBRARIES='-lopenblas -fopenmp -lm -lgfortran' TOAST_BUILD_CMAKE_VERBOSE_MAKEFILE=ON"
CIBW_ENVIRONMENT_MACOS:
CIBW_BEFORE_BUILD_LINUX: ./wheels/install_deps_linux.sh
CIBW_BEFORE_BUILD_MACOS: ./wheels/install_deps_osx.sh
CIBW_BEFORE_TEST: pip3 install numpy && pip3 install mpi4py
CIBW_TEST_COMMAND: export OMP_NUM_THREADS=2; python -c 'import toast.tests; toast.tests.run()'
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-python@v2
name: Install Python
with:
python-version: '3.7'
- name: Install cibuildwheel
run: |
python -m pip install twine cibuildwheel==1.6.3
- name: Build wheel
run: |
python -m cibuildwheel --output-dir wheelhouse
- name: Upload to PyPI
run: |
python -m twine upload wheelhouse/toast*.whl
wheels-37:
name: Python 3.7 wheels for ${{ matrix.os }}
build_wheels:
name: Build wheel for cp${{ matrix.python }}-${{ matrix.builder }}_${{ matrix.arch }}
runs-on: ${{ matrix.os }}
strategy:
# Ensure that a wheel builder finishes even if another fails. Useful for
# debugging multiple problems in parallel.
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
env:
CIBW_BUILD: cp37-macosx_x86_64 cp37-manylinux_x86_64
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010
CIBW_MANYLINUX_I686_IMAGE: manylinux2010
CIBW_BUILD_VERBOSITY: 3
CIBW_ENVIRONMENT_LINUX: "PATH=/usr/lib64/mpich-3.2/bin:${PATH} TOAST_BUILD_BLAS_LIBRARIES='-lopenblas -fopenmp -lm -lgfortran' TOAST_BUILD_LAPACK_LIBRARIES='-lopenblas -fopenmp -lm -lgfortran' TOAST_BUILD_CMAKE_VERBOSE_MAKEFILE=ON"
CIBW_ENVIRONMENT_MACOS:
CIBW_BEFORE_BUILD_LINUX: ./wheels/install_deps_linux.sh
CIBW_BEFORE_BUILD_MACOS: ./wheels/install_deps_osx.sh
CIBW_BEFORE_TEST: pip3 install numpy && pip3 install mpi4py
CIBW_TEST_COMMAND: export OMP_NUM_THREADS=2; python -c 'import toast.tests; toast.tests.run()'
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-python@v2
name: Install Python
with:
python-version: '3.7'
- name: Install cibuildwheel
run: |
python -m pip install twine cibuildwheel==1.6.3
- name: Build wheel
run: |
python -m cibuildwheel --output-dir wheelhouse
- name: Upload to PyPI
run: |
python -m twine upload wheelhouse/toast*.whl
wheels-38:
name: Python 3.8 wheels for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
include:
# Linux 64 bit manylinux
- os: ubuntu-latest
arch: x86_64
python: 39
builder: manylinux
- os: ubuntu-latest
arch: x86_64
python: 310
builder: manylinux
- os: ubuntu-latest
arch: x86_64
python: 311
builder: manylinux
- os: ubuntu-latest
arch: x86_64
python: 312
builder: manylinux

# MacOS x86_64. The macos-13 runner is the last
# Intel-based runner version. At some point we'll
# need to switch to macos-latest and test cross compiling.
- os: macos-13
arch: x86_64
python: 310
builder: macosx
deploy: 13.0
- os: macos-13
arch: x86_64
python: 311
builder: macosx
deploy: 13.0
- os: macos-13
arch: x86_64
python: 312
builder: macosx
deploy: 13.0

# MacOS arm64
- os: macos-latest
arch: arm64
python: 310
builder: macosx
deploy: 14.0
- os: macos-latest
arch: arm64
python: 311
builder: macosx
deploy: 14.0
- os: macos-latest
arch: arm64
python: 312
builder: macosx
deploy: 14.0
env:
CIBW_BUILD: cp38-macosx_x86_64 cp38-manylinux_x86_64
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010
CIBW_MANYLINUX_I686_IMAGE: manylinux2010
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.builder }}_${{ matrix.arch }}
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.builder }}2014
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.builder }}2014
CIBW_BUILD_VERBOSITY: 3
CIBW_ENVIRONMENT_LINUX: "PATH=/usr/lib64/mpich-3.2/bin:${PATH} TOAST_BUILD_BLAS_LIBRARIES='-lopenblas -fopenmp -lm -lgfortran' TOAST_BUILD_LAPACK_LIBRARIES='-lopenblas -fopenmp -lm -lgfortran' TOAST_BUILD_CMAKE_VERBOSE_MAKEFILE=ON"
CIBW_ENVIRONMENT_MACOS:
CIBW_BEFORE_BUILD_LINUX: ./wheels/install_deps_linux.sh
CIBW_BEFORE_BUILD_MACOS: ./wheels/install_deps_osx.sh
CIBW_BEFORE_TEST: pip3 install numpy && pip3 install mpi4py
CIBW_TEST_COMMAND: export OMP_NUM_THREADS=2; python -c 'import toast.tests; toast.tests.run()'
CIBW_ENVIRONMENT_LINUX: >
TOAST_BUILD_CMAKE_VERBOSE_MAKEFILE=ON
TOAST_BUILD_TOAST_STATIC_DEPS=ON
TOAST_BUILD_BLAS_LIBRARIES='-L/usr/local/lib -lopenblas -fopenmp -lm -lgfortran'
TOAST_BUILD_LAPACK_LIBRARIES='-L/usr/local/lib -lopenblas -fopenmp -lm -lgfortran'
TOAST_BUILD_FFTW_ROOT=/usr/local
TOAST_BUILD_AATM_ROOT=/usr/local
TOAST_BUILD_SUITESPARSE_INCLUDE_DIR_HINTS=/usr/local/include
TOAST_BUILD_SUITESPARSE_LIBRARY_DIR_HINTS=/usr/local/lib
CIBW_ENVIRONMENT_MACOS: >
MACOSX_DEPLOYMENT_TARGET=${{ matrix.deploy }}
TOAST_BUILD_CMAKE_C_COMPILER=clang
TOAST_BUILD_CMAKE_CXX_COMPILER=clang++
TOAST_BUILD_CMAKE_C_FLAGS='-O3 -fPIC'
TOAST_BUILD_CMAKE_CXX_FLAGS='-O3 -fPIC -std=c++11 -stdlib=libc++'
TOAST_BUILD_CMAKE_VERBOSE_MAKEFILE=ON
TOAST_BUILD_DISABLE_OPENMP=1
TOAST_BUILD_BLAS_LIBRARIES='/usr/local/lib/libopenblas.dylib'
TOAST_BUILD_LAPACK_LIBRARIES='/usr/local/lib/libopenblas.dylib'
TOAST_BUILD_FFTW_ROOT=/usr/local
TOAST_BUILD_AATM_ROOT=/usr/local
TOAST_BUILD_SUITESPARSE_INCLUDE_DIR_HINTS=/usr/local/include
TOAST_BUILD_SUITESPARSE_LIBRARY_DIR_HINTS=/usr/local/lib
CIBW_BEFORE_BUILD_LINUX: ./packaging/wheels/install_deps_linux.sh
CIBW_BEFORE_BUILD_MACOS: ./packaging/wheels/install_deps_osx.sh
CIBW_BEFORE_TEST: export OMP_NUM_THREADS=1
CIBW_TEST_COMMAND: source {project}/packaging/wheels/cibw_run_tests.sh
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-python@v2
uses: actions/checkout@v4

- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.7'
python-version: '3.10'

- name: Install cibuildwheel
run: |
python -m pip install twine cibuildwheel==1.6.3
python -m pip install twine cibuildwheel==2.20.0

- name: Build wheel
run: |
python -m cibuildwheel --output-dir wheelhouse

- name: Upload to PyPI
run: |
python -m twine upload wheelhouse/toast*.whl
python -m twine upload wheelhouse/toast*cp${{ matrix.python }}-${{ matrix.builder }}*${{ matrix.arch }}*.whl
Loading