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

Prep conduit manuscript #166

Open
wants to merge 145 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
145 commits
Select commit Hold shift + click to select a range
1f984e5
Prototype new analyses/methods
mmore500 Oct 20, 2023
b3f66b2
Switch Docker from git:// to https://
mmore500 Oct 20, 2023
062f718
Replace OLS regression, fixup rest of metrics
mmore500 Oct 20, 2023
4a2bf9b
Disable git safe directory
mmore500 Oct 20, 2023
0519f9b
Add suggested git safe dir except
mmore500 Oct 20, 2023
1cc1ff3
Try setting git safedir in CI step
mmore500 Oct 20, 2023
c2bb63b
Catch median ValueError and warn
mmore500 Oct 31, 2023
115cfe8
Impl, test performance-semantics plot
mmore500 Oct 31, 2023
ece4de7
Remove redundant code
mmore500 Nov 1, 2023
c5c6a13
Polish perforamce-semantics plot design
mmore500 Nov 1, 2023
9a51e83
Implement, test hash_with_lax_fallback
mmore500 Nov 3, 2023
58bf830
Implement, test UnequalSentinel
mmore500 Nov 3, 2023
e5dd6d2
Implement, test lru_cache_universal
mmore500 Nov 3, 2023
e7692f7
Impl, test seaborn kde-caching monkeypatch
mmore500 Nov 3, 2023
8ad85a4
Bugfix: don't override hue_order
mmore500 Nov 3, 2023
a5975eb
Fix bad __all__ in __init__
mmore500 Nov 5, 2023
e5d7ccc
Impl, test round_to_multiple util
mmore500 Nov 5, 2023
c7e475e
Bugfix: use robust equals for Pandas support
mmore500 Nov 5, 2023
a3ef533
Implement, test splice
mmore500 Nov 5, 2023
dda2b4e
Impl, test compact_xaxis_units
mmore500 Nov 5, 2023
83fe842
Break out kde fill, prep for facet figure
mmore500 Nov 5, 2023
8942912
Rename to performance_semantics_{kde,scatter}plot
mmore500 Nov 6, 2023
beab009
Fix func name axis_limits -> axis_lims
mmore500 Nov 6, 2023
bf11e45
Switch default palette to gold/purple/teal
mmore500 Nov 6, 2023
b671206
Fixup hue_order setup and checks
mmore500 Nov 6, 2023
5c99aa4
Take legend font path by arg
mmore500 Nov 6, 2023
904c827
Impl performance-semantics facetplot composite
mmore500 Nov 6, 2023
20107fe
Set editorconfig python indent 2 -> 4
mmore500 Nov 6, 2023
183c9ab
Bugfix: show smear unflagged should hide smear
mmore500 Nov 6, 2023
42cd9e3
Reflow overlength comment
mmore500 Nov 6, 2023
9be85c1
Update smear default styling
mmore500 Nov 9, 2023
8980817
Impl, test pickle_cache
mmore500 Nov 9, 2023
5520bb0
Implement data wrangling helpers
mmore500 Nov 10, 2023
3fb2774
Implement beleaguerment regplot
mmore500 Nov 10, 2023
8fd8302
Make equals_by_value support nested lists and dict
mmore500 Nov 10, 2023
b1c4bc9
Implement beleaguerment facetplot
mmore500 Nov 10, 2023
ec65d59
Bugfix: use hue_order in beleaguerment viz
mmore500 Nov 10, 2023
8341b8e
Add lac 417 beleaguerment notebook
mmore500 Nov 10, 2023
3adf5b3
Implement apply_symmetric_axes helper
mmore500 Nov 10, 2023
23ceb98
Bugfix: missing -1 to longitudinal bunching calc
mmore500 Nov 10, 2023
f8f4f38
Alias new bunchiness metric to clumpiness, etc.
mmore500 Nov 10, 2023
809dd23
Apply black format
mmore500 Nov 10, 2023
c3d3b3f
Impl runtime indicator regplot, pairplot
mmore500 Nov 10, 2023
9254999
Impl, test perruntime indicators concat
mmore500 Nov 10, 2023
628fe4e
Commit missing instrumentation wrangling content
mmore500 Nov 10, 2023
3b7b790
Fix smear errorbar calculation
mmore500 Nov 10, 2023
c31aecf
Make performance semantics notebook
mmore500 Nov 10, 2023
579b674
Fixup beleaguerment notebook
mmore500 Nov 10, 2023
eed820d
Handle desserial except in pickle_cache
mmore500 Nov 10, 2023
d91fa36
Factor out copy/paste spam from lac-417 nb
mmore500 Nov 10, 2023
4c24f41
Update python requirements, fiddle with pins
mmore500 Nov 10, 2023
1da20db
Pin older bidict that docker build can find
mmore500 Nov 10, 2023
d84dcd8
Put venv on Docker path to upgrade python to 3.8
mmore500 Nov 10, 2023
3956ce2
Try installing packages and curling gpg key
mmore500 Nov 10, 2023
f8513d0
Try another Docker setup strategy
mmore500 Nov 10, 2023
1df548d
Try adding deadsnames with RUN command
mmore500 Nov 10, 2023
beb0f24
Bump ubuntu 18 -> 20
mmore500 Nov 10, 2023
e725163
Fix Dockerfile syntax error
mmore500 Nov 10, 2023
42a87b3
Drop python3.8 sideload, it's default on ubuntu 20
mmore500 Nov 10, 2023
84c70b3
Try an amd64 digest
mmore500 Nov 10, 2023
dc85f0c
Update apt packages ubuntu 18 -> 20
mmore500 Nov 10, 2023
204e083
Try using aptitude to fix apt versioning issue
mmore500 Nov 10, 2023
8e80528
Remove special install for newer git
mmore500 Nov 10, 2023
6cdd2ff
Try installing software-properties-common with apt
mmore500 Nov 10, 2023
42cb0f4
Try installing compilers directly, not through ppa
mmore500 Nov 10, 2023
3441f82
Install git with apt not aptitude
mmore500 Nov 10, 2023
2653a67
Try removing deletion of updates repositories
mmore500 Nov 10, 2023
f4bd73c
Try cache clean to fix npm crash
mmore500 Nov 10, 2023
502c757
Try fix npm crash with manual semver install
mmore500 Nov 10, 2023
60633d1
Try pinning semver and reinitializing path
mmore500 Nov 10, 2023
db656bd
Bump numpy back to provide statsmodels MachAr
mmore500 Nov 10, 2023
f512524
Drop back mplotlib pin for pandas compat
mmore500 Nov 11, 2023
7bfc681
Delete unneeded Dockerfile content
mmore500 Nov 11, 2023
93e4882
Strip out dead code
mmore500 Nov 11, 2023
d194103
Create intra/internode beleaguerment notebook
mmore500 Nov 11, 2023
7e87da3
Hide regplot artifacts from summary panel
mmore500 Nov 11, 2023
0a80dbc
Fix bad column aliasing
mmore500 Nov 11, 2023
8e8bc24
Fixup imports
mmore500 Nov 11, 2023
d629711
Bugfix: handle case where hue not provided
mmore500 Nov 12, 2023
dace623
Implement DrawBatched functor
mmore500 Nov 12, 2023
fe5535b
Impl open_dymmy_axis context
mmore500 Nov 12, 2023
2d4ecd0
Apply column alias incl/excl lac417
mmore500 Nov 12, 2023
387f497
Restyle beleaguerment plots
mmore500 Nov 12, 2023
fda2f01
Restyle performance semantics scatter
mmore500 Nov 12, 2023
f7794ac
Add computation/communication beleaguerment nb
mmore500 Nov 12, 2023
8d510aa
Set max_line_length in editorconfig
mmore500 Nov 12, 2023
75e8612
fixup! Restyle performance semantics scatter
mmore500 Nov 12, 2023
647b68c
Fix whitespace
mmore500 Nov 12, 2023
94a0ae8
Remove unnecessary dropna
mmore500 Nov 12, 2023
659519b
Fix kwarg linewidth -> linewidths
mmore500 Nov 13, 2023
146ded7
Fix missing column key error
mmore500 Nov 13, 2023
bb564bb
Bugfix: remember to unpack kwargs
mmore500 Nov 14, 2023
024aa8b
Bugfix: prevent and handle zero batches case
mmore500 Nov 14, 2023
92261e7
Add comp vs com beleaguerment nb
mmore500 Nov 18, 2023
a4dbead
Add thread vs proc beleaguerment nb
mmore500 Nov 18, 2023
eef03bd
Fix copy/paste nb name
mmore500 Nov 19, 2023
9f85640
Add weak scaling beleaguerment nb
mmore500 Nov 19, 2023
1441e18
Fix copy/paste name
mmore500 Nov 19, 2023
4df5370
Bugfix: ps kdeplot should respect hue_order
mmore500 Nov 19, 2023
4b7de5b
Bugfix: use linewidth kwarg, not linewidths
mmore500 Nov 19, 2023
805bd3e
Add inter/intranode psp nb
mmore500 Nov 19, 2023
4fcbf4a
Fix copy/paste nb name
mmore500 Nov 19, 2023
605757f
Add multithread/proc psp notebook
mmore500 Nov 19, 2023
5c03186
Handle orders of magnitude % 3 != 0
mmore500 Nov 19, 2023
5a26b1e
Add fourth entry to style carousel
mmore500 Nov 19, 2023
bd5767f
Fix style handling in perf semantics plots
mmore500 Nov 19, 2023
26aa12d
Style code
mmore500 Nov 19, 2023
bf7d963
Take and forward subplot kwargs
mmore500 Nov 19, 2023
54b7bd2
Add option to disable shared x/y axis scales
mmore500 Nov 19, 2023
17a9da4
Fork clean notebook operations for speedup
mmore500 Nov 19, 2023
091e5e9
Add comp vs comm ps plot notebook
mmore500 Nov 19, 2023
f5100fb
Add weak scaling performance semantics nb
mmore500 Nov 19, 2023
6ab8571
Remove unused copy/paste cruft
mmore500 Nov 19, 2023
ba4b0c1
Alphabetize kwargs
mmore500 Nov 19, 2023
54ae9d9
Exclude outliers and mark on axis edges
mmore500 Nov 19, 2023
e53ffad
Improve off-axis outlier annotation
mmore500 Nov 20, 2023
b66b956
Add marker helper (not currently used)
mmore500 Nov 20, 2023
87ea1ef
Set higher keyname chop threshold
mmore500 Nov 30, 2023
c1217d0
Disable notebook causing timeout
mmore500 Nov 30, 2023
845266b
Bump keyname version for bugfix
mmore500 Nov 30, 2023
c9c9eac
Try parallelizing the notebook job with larger runner
mmore500 Nov 30, 2023
c01f835
Pin notebook container to skip build-per-commit
mmore500 Nov 30, 2023
3878d1f
Revert "Try parallelizing the notebook job with larger runner"
mmore500 Nov 30, 2023
025c28c
Try parallelizing the notebook job with larger runner
mmore500 Nov 30, 2023
7d2897a
Pin notebook container to skip build-per-commit
mmore500 Nov 30, 2023
d8149b7
Revert "Try parallelizing the notebook job with larger runner"
mmore500 Nov 30, 2023
16ae1f3
Use non-recursive approach to parallelize nb execution
mmore500 Nov 30, 2023
ff77899
Don't use source inside container, clone it instead
mmore500 Nov 30, 2023
1ddf836
Drop build dependency
mmore500 Nov 30, 2023
c4f6e6a
Remove broken pip install
mmore500 Nov 30, 2023
1aad5ae
Fix execute notebook nb discovery recursion
mmore500 Nov 30, 2023
a2f6d94
Disable broken notebook
mmore500 Nov 30, 2023
bf84201
Try staying in root directory
mmore500 Nov 30, 2023
f456022
Run git repo/user setup on deploy
mmore500 Nov 30, 2023
2098679
Fix safe directory exception
mmore500 Nov 30, 2023
90b22f1
Bugfix: mark current directory safe for git
mmore500 Nov 30, 2023
b64d24b
Try setting safe directory to glob
mmore500 Nov 30, 2023
548e284
Re-enable notebook evaluation
mmore500 Nov 30, 2023
2b48388
Try setting KEYNAME_CHOP_CHUNK_SIZE inside eval job
mmore500 Nov 30, 2023
e714f2c
Bump keyname pin for better error diagnostics
mmore500 Nov 30, 2023
0fab056
Bump container for newer python deps
mmore500 Nov 30, 2023
856a625
Disable broken notebook
mmore500 Nov 30, 2023
4c86547
Add ghostscript to container
mmore500 Nov 30, 2023
19da8ff
Bump container pin to get ghostscript
mmore500 Nov 30, 2023
a6cdbe9
Restore notebook, wasn't broken
mmore500 Nov 30, 2023
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
3 changes: 2 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@
[*]
end_of_line = lf
insert_final_newline = true
max_line_length = 79

# Matches multiple files with brace expansion notation
# Set default charset and tab width
[*.{js,py}]
charset = utf-8
indent_style = space
indent_size = 2
indent_size = 4

# cpp and hpp file indentation
[*.{cpp,hpp}]
Expand Down
26 changes: 9 additions & 17 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,34 +45,26 @@ jobs:
binder:
name: Notebooks
runs-on: ubuntu-20.04
needs:
- docker-build
container:
image: mmore500/conduit:GITHUB_ACTION_${{ github.run_number }}
image: mmore500/conduit:GITHUB_ACTION_706
# github actions requires root to access mounted volumes
options: --user root
steps:
- uses: actions/checkout@v2
# with:
# submodules: 'recursive'
# Adapted from https://askubuntu.com/a/524368
- run: cd /opt/conduit/binder && ./execute_notebooks.sh
- run: ./binder/execute_notebooks.sh
# adapted from https://unix.stackexchange.com/a/545630
- run: find -type f -name "*.pdf" -exec bash -c 'gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -sOutputFile="new.pdf" "{}"; rm "{}"; mv "new.pdf" "{}";' {} \;
- run: git config --global --add safe.directory "*"
- run: git init
- uses: fregante/setup-git-user@v1
- run: git commit --allow-empty -m "Initial commit"
- run: cp -r /opt/conduit/ deploy/
- uses: JamesIves/[email protected]
with:
folder: .
branch: binder # The branch the action should deploy to.
folder: deploy # The folder the action should deploy.
- run: mkdir -p deploy-artifacts/
- run: cp -r /opt/conduit/binder/. deploy-artifacts/binder/
# adapted from https://unix.stackexchange.com/a/107647
- run: find deploy-artifacts/binder/ -type f ! \( -name '*.csv' -o -name '*.png' -o -name '*.jpg' -o -name '*.pdf' -o -name '*.json' -o -name '*.meta' -o -name '*.txt' -o -name '*.out' -o -name '*.ipynb' \) -delete
# delete symlinks (Overleaf is not compatible with symlinks)
# adapted from https://superuser.com/a/586948
- run: find deploy-artifacts/binder -type l -delete
- uses: JamesIves/[email protected]
with:
branch: binder-artifacts # The branch the action should deploy to.
folder: deploy-artifacts # The folder the action should deploy.

unit:
name: Unit Tests
Expand Down
111 changes: 36 additions & 75 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Pull base image.
FROM ubuntu:bionic-20180125@sha256:d6f6cc62b6bed64387d84ca227b76b9cc45049b0d0aefee0deec21ed19a300bf
FROM ubuntu:focal-20231003@sha256:218bb51abbd1864df8be26166f847547b3851a89999ca7bfceb85ca9b5d2e95d

COPY . /opt/conduit/

Expand Down Expand Up @@ -36,29 +36,27 @@ RUN \
&& \
echo "buffed apt-get resiliency"

RUN \
find /etc/apt -type f -name '*.list' -exec sed -i 's/\(^deb.*-backports.*\)/#\1/; s/\(^deb.*-updates.*\)/#\1/; s/\(^deb.*-proposed.*\)/#\1/; s/\(^deb.*-security.*\)/#\1/' {} + \
&& \
rm -rf /var/lib/apt/lists/* \
&& \
echo "removed -backports, -updates, -proposed, -security repositories"

# adapted in part form https://www.cloudsavvyit.com/13461/how-to-run-puppeteer-and-headless-chrome-in-a-docker-container/
RUN \
apt-get update -qq \
&& \
apt-get install -y --allow-downgrades --no-install-recommends \
apt-get install -y aptitude git --allow-downgrades --no-install-recommends aptitude \
&& \
aptitude install -y --without-recommends \
build-essential \
ca-certificates \
clang-7 \
cmake \
curl \
doxygen \
emacs \
fonts-liberation \
gconf-service \
gdb \
ghostscript \
gpg-agent \
gzip \
g++-9 \
hdf5-helpers \
hdf5-tools \
htop \
Expand All @@ -67,6 +65,7 @@ RUN \
libatk1.0-0 \
libc6 \
libcairo2 \
libclang-7-dev \
libcups2 \
libcurl4 \
libcurl4-openssl-dev \
Expand All @@ -80,28 +79,28 @@ RUN \
libgtk-3-0 \
libicu-dev \
libjpeg-dev \
libhdf5-100 \
libhdf5-cpp-100 \
libhdf5-103 \
libhdf5-cpp-103 \
libhdf5-dev \
libhdf5-doc \
libhdf5-mpi-dev \
libhdf5-mpich-100 \
libhdf5-mpich-103 \
libhdf5-mpich-dev \
libhdf5-openmpi-100 \
libhdf5-openmpi-103 \
libhdf5-openmpi-dev \
libhdf5-serial-dev \
libmpich-dev \
libmpich12 \
libnspr4 \
libnss3 \
libopenmpi-dev \
libopenmpi2 \
# libopenmpi2 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libpng-dev \
libpthread-stubs0-dev \
libstdc++-7-dev \
libstdc++6=8-20180414-1ubuntu2 \
libstdc++6 \
libx11-6 \
libx11-xcb1 \
libxcb1 \
Expand All @@ -115,6 +114,8 @@ RUN \
libxrender1 \
libxss1 \
libxtst6 \
llvm-7 \
llvm-7-dev \
locales \
lsb-release \
man \
Expand All @@ -128,90 +129,43 @@ RUN \
openmpi-common \
openmpi-doc \
openssh-server \
python-dev \
python-h5py \
python-pip \
python-setuptools \
python-sphinx \
python-virtualenv \
python-wheel \
# python-dev \
# python-h5py \
# python-pip \
# python-setuptools \
# python-virtualenv \
# python-wheel \
python3-dev \
python3-h5py \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-virtualenv \
python3-wheel \
rename \
rsync \
slurm-client \
software-properties-common \
sphinx-doc \
sphinx-common \
tar \
unzip \
vim \
wget \
xdg-utils \
&& \
add-apt-repository ppa:git-core/ppa -y \
&& \
apt-get update -qq \
&& \
apt-get install -y --no-install-recommends git \
&& \
apt-get clean \
&& \
rm -rf /var/lib/apt/lists/* \
&& \
echo "installed fundamentals"

# adapted in part from https://askubuntu.com/a/916451
RUN \
apt-get update -qq \
&& \
rm /etc/apt/apt.conf.d/docker-gzip-indexes \
&& \
apt-get purge apt-show-versions \
&& \
rm /var/lib/apt/lists/*lz4 \
&& \
apt-get -o Acquire::GzipIndexes=false update \
&& \
add-apt-repository -y ppa:ubuntu-toolchain-r/test \
&& \
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
&& \
apt-add-repository "deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main" \
&& \
add-apt-repository -y ppa:ubuntu-toolchain-r/test \
&& \
apt-get update -qq \
&& \
apt-get clean \
&& \
rm -rf /var/lib/apt/lists/* \
&& \
echo "configured packaging system"

RUN \
apt-get update -qq \
&& \
apt-get install -qq \
libclang-7-dev=1:7.1.0~svn353565-1~exp1~20190408084827.60 \
llvm-7=1:7.1.0~svn353565-1~exp1~20190408084827.60 \
llvm-7-dev=1:7.1.0~svn353565-1~exp1~20190408084827.60 \
clang-7=1:7.1.0~svn353565-1~exp1~20190408084827.60 \
g++-9=9.4.0-1ubuntu1~18.04 \
&& \
apt-get clean \
&& \
rm -rf /var/lib/apt/lists/* \
&& \
echo "installed llvm-7 dependencies"

# magic from https://github.com/puppeteer/puppeteer/issues/3451#issuecomment-523961368
RUN echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/userns.conf

# git confifg, see https://stackoverflow.com/a/76769867
RUN \
git config --global url."https://".insteadOf git:// \
&& \
python3 -m pip install --timeout 60 --retries 100 --upgrade pip==21.3.1 \
&& \
python3 -m pip install --timeout 60 --retries 100 --ignore-installed -r /opt/conduit/third-party/requirements.txt \
Expand All @@ -231,9 +185,11 @@ RUN \
&& \
update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-7 90 \
&& \
npm install -g [email protected] \
npm install -g [email protected] [email protected] \
&& \
npm cache clean --force \
&& \
n 12.18.2 \
PATH="$PATH" n 12.18.2 \
&& \
export python="/usr/bin/python" \
&& \
Expand Down Expand Up @@ -291,6 +247,7 @@ RUN \
&& \
echo "user added and granted permissions to /opt and /home/user"

# git safe directory: https://stackoverflow.com/a/73100228/17332200
RUN \
mkdir /context/ \
&& \
Expand All @@ -300,6 +257,10 @@ RUN \
&& \
chown user:user /__w/ \
&& \
git config --global --add safe.directory '*' \
&& \
git config --global --add safe.directory /__w/conduit/conduit \
&& \
echo "/context/ /__w/ directories set up, user granted permissions"

USER user
Expand Down
2 changes: 1 addition & 1 deletion binder/clear_notebooks.sh
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ echo "-------------------------"
shopt -s nullglob

for script in "${script_dir}/"*/clear_notebooks.sh; do
"${script}"
"${script}" &
done

shopt -u nullglob
Loading
Loading