|
Using Python in an HPC environment
| https://uppmax.github.io/HPC-python/ |
| Pre-requirements | https://uppmax.github.io/HPC-python/prereqs.html |
| Prepare the environment | https://uppmax.github.io/HPC-python/preparations.html |
| Schedule | https://uppmax.github.io/HPC-python/schedule.html |
| Log in and other preparations | https://uppmax.github.io/HPC-python/common/login.html |
| Use the tarball with exercises | https://uppmax.github.io/HPC-python/common/use_tarball.html |
| Use a text editor | https://uppmax.github.io/HPC-python/common/use_text_editor.html |
| HPC clusters | https://uppmax.github.io/HPC-python/common/understanding_clusters.html |
| NAISS projects overview | https://uppmax.github.io/HPC-python/common/naiss_projects_overview.html |
| Link to Day 1 (Intro to Python) | https://uppmax.github.io/HPC-python/common/day1.html |
| Introduction | https://uppmax.github.io/HPC-python/day2/intro.html |
| Using packages | https://uppmax.github.io/HPC-python/day2/use_packages.html |
| Install packages | https://uppmax.github.io/HPC-python/day2/install_packages.html |
| Use isolated environments | https://uppmax.github.io/HPC-python/day2/use_isolated_environments.html |
| Basic batch and Slurm | https://uppmax.github.io/HPC-python/day2/basic_batch_slurm.html |
| Interactive work on the compute nodes | https://uppmax.github.io/HPC-python/day2/interactive.html |
| Desktop On Demand | https://uppmax.github.io/HPC-python/day2/ondemand-desktop.html |
| Starting IDEs from command line | https://uppmax.github.io/HPC-python/day2/IDEs_cmd.html |
| Using IDEs | https://uppmax.github.io/HPC-python/day2/IDEs.html |
| Summary day 2 | https://uppmax.github.io/HPC-python/summary2.html |
| Evaluation | https://uppmax.github.io/HPC-python/day2/evaluation.html |
| Python documentations at the different HPC centres | https://uppmax.github.io/HPC-python/day2/python_at_hpc_centers.html |
| A Brief Intro to Matplotlib | https://uppmax.github.io/HPC-python/day3/new-matplotlib-intro.html |
| Intro to Pandas on HPC | https://uppmax.github.io/HPC-python/day3/pandas.html |
| A Brief Introduction to the Seaborn Statistical Plotting Library | https://uppmax.github.io/HPC-python/day3/seaborn-new.html |
| Big data with Python | https://uppmax.github.io/HPC-python/day3/big_data.html |
| Running Python in batch mode | https://uppmax.github.io/HPC-python/day3/batch-new.html |
| Summary day 3 | https://uppmax.github.io/HPC-python/summary3.html |
| Evaluation | https://uppmax.github.io/HPC-python/day3/evaluation.html |
| Parallel computing with Python | https://uppmax.github.io/HPC-python/day4/parallel.html |
| Using GPUs with Python | https://uppmax.github.io/HPC-python/day4/gpu.html |
| Machine Learning and Deep Learning | https://uppmax.github.io/HPC-python/day4/ml.html |
| Dimensionality Reduction | https://uppmax.github.io/HPC-python/day4/dim_reduction.html |
| Evaluation | https://uppmax.github.io/HPC-python/day4/evaluation.html |
| Summary day 4 | https://uppmax.github.io/HPC-python/summary4.html |
| On Bianca cluster | https://uppmax.github.io/HPC-python/bianca.html |
| Other courses | https://uppmax.github.io/HPC-python/extra/other_courses.html |
| More about packages | https://uppmax.github.io/HPC-python/extra/packages_deeper.html |
| Developing in isolated environments | https://uppmax.github.io/HPC-python/extra/isolated_deeper.html |
| Jupyter at Kebnekaise | https://uppmax.github.io/HPC-python/extra/jupyterHPC2N.html |
| On Kebnekaise cluster | https://uppmax.github.io/HPC-python/kebnekaise.html |
| More about ML | https://uppmax.github.io/HPC-python/day4/ML_deeper.html |
| On UPPMAX clusters | https://uppmax.github.io/HPC-python/uppmax.html |
| Using Python in an HPC environment | https://uppmax.github.io/HPC-python/ |
| https://uppmax.github.io/HPC-python/ |
| Edit on GitHub | https://github.com/UPPMAX/HPC-python/blob/main/docs/index.rst |
| | https://uppmax.github.io/HPC-python/#welcome-to-using-python-in-an-hpc-environment-course-material |
| | https://uppmax.github.io/HPC-python/#schedule-autumn-2025 |
| Schedule | https://uppmax.github.io/HPC-python/schedule.html#schedule |
| UPPMAX | https://docs.uppmax.uu.se/software/python/ |
| HPC2N | https://docs.hpc2n.umu.se/tutorials/userinstalls/#python__packages |
| LUNARC | https://lunarc-documentation.readthedocs.io/en/latest/guides/applications/Python/ |
| NSC | https://www.nsc.liu.se/support/ |
| PDC | https://support.pdc.kth.se/doc/applications/python/ |
| C3SE | https://www.c3se.chalmers.se/documentation/module_system/python/ |
| Code of Conduct | https://github.com/UPPMAX/R-matlab-julia-HPC/blob/main/CODE_OF_CONDUCT.md |
| https://umeauniversity.sharepoint.com/:w:/s/HPC2N630/IQDToLTHrvKHQ7PSkxBv9v_lAfFXgfgLZVMLRDzQ_jOrfDw | https://umeauniversity.sharepoint.com/:w:/s/HPC2N630/IQDToLTHrvKHQ7PSkxBv9v_lAfFXgfgLZVMLRDzQ_jOrfDw |
| Pre-requirements | https://uppmax.github.io/HPC-python/prereqs.html#prereqs |
| | https://uppmax.github.io/HPC-python/#content-of-the-course |
| Pre-requirements | https://uppmax.github.io/HPC-python/prereqs.html |
| Pre-requirements for Day 1 | https://uppmax.github.io/HPC-python/prereqs.html#pre-requirements-for-day-1 |
| Pre-requirements for Day 2 | https://uppmax.github.io/HPC-python/prereqs.html#pre-requirements-for-day-2 |
| Pre-requirements for Day 3 | https://uppmax.github.io/HPC-python/prereqs.html#pre-requirements-for-day-3 |
| Pre-requirements for Day 4 | https://uppmax.github.io/HPC-python/prereqs.html#pre-requirements-for-day-4 |
| Prepare the environment | https://uppmax.github.io/HPC-python/preparations.html |
| The steps to make | https://uppmax.github.io/HPC-python/preparations.html#the-steps-to-make |
| Schedule | https://uppmax.github.io/HPC-python/schedule.html |
| Course dates | https://uppmax.github.io/HPC-python/schedule.html#course-dates |
| Day 1: Log in and use basic Python in a cluster environment | https://uppmax.github.io/HPC-python/schedule.html#day-1-log-in-and-use-basic-python-in-a-cluster-environment |
| Day 2: Packages, environments and using compute nodes | https://uppmax.github.io/HPC-python/schedule.html#day-2-packages-environments-and-using-compute-nodes |
| Day 3: Basic analysis, Big Data and Batch jobs | https://uppmax.github.io/HPC-python/schedule.html#day-3-basic-analysis-big-data-and-batch-jobs |
| Day 4: Parallelism, GPUs, and machine learning | https://uppmax.github.io/HPC-python/schedule.html#day-4-parallelism-gpus-and-machine-learning |
| Log in and other preparations | https://uppmax.github.io/HPC-python/common/login.html |
| Step 1: Log in! | https://uppmax.github.io/HPC-python/common/login.html#step-1-log-in |
| Step 2: Make a work directory | https://uppmax.github.io/HPC-python/common/login.html#step-2-make-a-work-directory |
| Test an editor | https://uppmax.github.io/HPC-python/common/login.html#test-an-editor |
| Download and extract the tarball with exercises | https://uppmax.github.io/HPC-python/common/login.html#download-and-extract-the-tarball-with-exercises |
| Use the tarball with exercises | https://uppmax.github.io/HPC-python/common/use_tarball.html |
| Procedure | https://uppmax.github.io/HPC-python/common/use_tarball.html#procedure |
| Use a text editor | https://uppmax.github.io/HPC-python/common/use_text_editor.html |
| HPC clusters | https://uppmax.github.io/HPC-python/common/understanding_clusters.html |
| The HPC centers UPPMAX, HPC2N, LUNARC, NSC and Dardel | https://uppmax.github.io/HPC-python/common/understanding_clusters.html#the-hpc-centers-uppmax-hpc2n-lunarc-nsc-and-dardel |
| Briefly about the cluster hardware and system at UPPMAX, HPC2N, LUNARC, NSC and PDC | https://uppmax.github.io/HPC-python/common/understanding_clusters.html#briefly-about-the-cluster-hardware-and-system-at-uppmax-hpc2n-lunarc-nsc-and-pdc |
| NAISS projects overview | https://uppmax.github.io/HPC-python/common/naiss_projects_overview.html |
| Link to Day 1 (Intro to Python) | https://uppmax.github.io/HPC-python/common/day1.html |
| Introduction | https://uppmax.github.io/HPC-python/day2/intro.html |
| Why is this course important? | https://uppmax.github.io/HPC-python/day2/intro.html#why-is-this-course-important |
| Exercises | https://uppmax.github.io/HPC-python/day2/intro.html#exercises |
| Using packages | https://uppmax.github.io/HPC-python/day2/use_packages.html |
| Why Python packages are important | https://uppmax.github.io/HPC-python/day2/use_packages.html#why-python-packages-are-important |
| Why software modules are important | https://uppmax.github.io/HPC-python/day2/use_packages.html#why-software-modules-are-important |
| How to see which Python packages are installed | https://uppmax.github.io/HPC-python/day2/use_packages.html#how-to-see-which-python-packages-are-installed |
| Exercises | https://uppmax.github.io/HPC-python/day2/use_packages.html#exercises |
| Install packages | https://uppmax.github.io/HPC-python/day2/install_packages.html |
| Introduction | https://uppmax.github.io/HPC-python/day2/install_packages.html#introduction |
| Exercise | https://uppmax.github.io/HPC-python/day2/install_packages.html#exercise |
| Use isolated environments | https://uppmax.github.io/HPC-python/day2/use_isolated_environments.html |
| Isolated environments | https://uppmax.github.io/HPC-python/day2/use_isolated_environments.html#isolated-environments |
| Virtual environment - venv & virtualenv | https://uppmax.github.io/HPC-python/day2/use_isolated_environments.html#virtual-environment-venv-virtualenv |
| Conda | https://uppmax.github.io/HPC-python/day2/use_isolated_environments.html#conda |
| Install from file | https://uppmax.github.io/HPC-python/day2/use_isolated_environments.html#install-from-file |
| Exercises | https://uppmax.github.io/HPC-python/day2/use_isolated_environments.html#exercises |
| Summary | https://uppmax.github.io/HPC-python/day2/use_isolated_environments.html#summary |
| Summary | https://uppmax.github.io/HPC-python/day2/use_isolated_environments.html#id10 |
| Basic batch and Slurm | https://uppmax.github.io/HPC-python/day2/basic_batch_slurm.html |
| What is a batch job? | https://uppmax.github.io/HPC-python/day2/basic_batch_slurm.html#what-is-a-batch-job |
| What is a cluster? | https://uppmax.github.io/HPC-python/day2/basic_batch_slurm.html#what-is-a-cluster |
| What are some important commands regarding batch jobs? | https://uppmax.github.io/HPC-python/day2/basic_batch_slurm.html#what-are-some-important-commands-regarding-batch-jobs |
| Running your programs and scripts on UPPMAX, HPC2N, LUNARC, NSC, and PDC | https://uppmax.github.io/HPC-python/day2/basic_batch_slurm.html#running-your-programs-and-scripts-on-uppmax-hpc2n-lunarc-nsc-and-pdc |
| Exercises | https://uppmax.github.io/HPC-python/day2/basic_batch_slurm.html#exercises |
| Interactive work on the compute nodes | https://uppmax.github.io/HPC-python/day2/interactive.html |
| Introduction | https://uppmax.github.io/HPC-python/day2/interactive.html#introduction |
| The different way HPC2N, UPPMAX, LUNARC, NSC, PDC, and C3SE provide for an interactive session | https://uppmax.github.io/HPC-python/day2/interactive.html#the-different-way-hpc2n-uppmax-lunarc-nsc-pdc-and-c3se-provide-for-an-interactive-session |
| Start an interactive session | https://uppmax.github.io/HPC-python/day2/interactive.html#start-an-interactive-session |
| End an interactive session | https://uppmax.github.io/HPC-python/day2/interactive.html#end-an-interactive-session |
| Check to be in an interactive session | https://uppmax.github.io/HPC-python/day2/interactive.html#check-to-be-in-an-interactive-session |
| Check that the number of cores booked is correct | https://uppmax.github.io/HPC-python/day2/interactive.html#check-that-the-number-of-cores-booked-is-correct |
| Running a Python script in an interactive session | https://uppmax.github.io/HPC-python/day2/interactive.html#running-a-python-script-in-an-interactive-session |
| Conclusion | https://uppmax.github.io/HPC-python/day2/interactive.html#conclusion |
| Desktop On Demand | https://uppmax.github.io/HPC-python/day2/ondemand-desktop.html |
| What is Desktop On Demand? Is it right for my job? | https://uppmax.github.io/HPC-python/day2/ondemand-desktop.html#what-is-desktop-on-demand-is-it-right-for-my-job |
| Starting the On-Demand Interface | https://uppmax.github.io/HPC-python/day2/ondemand-desktop.html#starting-the-on-demand-interface |
| Setting Job Parameters | https://uppmax.github.io/HPC-python/day2/ondemand-desktop.html#setting-job-parameters |
| Job Parameters - GPUs | https://uppmax.github.io/HPC-python/day2/ondemand-desktop.html#job-parameters-gpus |
| Starting IDEs from command line | https://uppmax.github.io/HPC-python/day2/IDEs_cmd.html |
| Introduction | https://uppmax.github.io/HPC-python/day2/IDEs_cmd.html#introduction |
| Prepare environment! | https://uppmax.github.io/HPC-python/day2/IDEs_cmd.html#prepare-environment |
| Jupyter | https://uppmax.github.io/HPC-python/day2/IDEs_cmd.html#jupyter |
| Spyder | https://uppmax.github.io/HPC-python/day2/IDEs_cmd.html#spyder |
| VS Code | https://uppmax.github.io/HPC-python/day2/IDEs_cmd.html#vs-code |
| Exercises with step-by-step instructions | https://uppmax.github.io/HPC-python/day2/IDEs_cmd.html#exercises-with-step-by-step-instructions |
| Using IDEs | https://uppmax.github.io/HPC-python/day2/IDEs.html |
| Jupyter | https://uppmax.github.io/HPC-python/day2/IDEs.html#jupyter |
| Spyder | https://uppmax.github.io/HPC-python/day2/IDEs.html#spyder |
| VS Code | https://uppmax.github.io/HPC-python/day2/IDEs.html#vs-code |
| Exercises | https://uppmax.github.io/HPC-python/day2/IDEs.html#exercises |
| Summary day 2 | https://uppmax.github.io/HPC-python/summary2.html |
| Evaluation | https://uppmax.github.io/HPC-python/day2/evaluation.html |
| Python documentations at the different HPC centres | https://uppmax.github.io/HPC-python/day2/python_at_hpc_centers.html |
| A Brief Intro to Matplotlib | https://uppmax.github.io/HPC-python/day3/new-matplotlib-intro.html |
| Load and Run | https://uppmax.github.io/HPC-python/day3/new-matplotlib-intro.html#load-and-run |
| Basic Terms and Application Programming Interface (API) | https://uppmax.github.io/HPC-python/day3/new-matplotlib-intro.html#basic-terms-and-application-programming-interface-api |
| Standard Available Plot Types | https://uppmax.github.io/HPC-python/day3/new-matplotlib-intro.html#standard-available-plot-types |
| Intro to Pandas on HPC | https://uppmax.github.io/HPC-python/day3/pandas.html |
| Load and Run | https://uppmax.github.io/HPC-python/day3/pandas.html#load-and-run |
| Introductory Topics (Review) | https://uppmax.github.io/HPC-python/day3/pandas.html#introductory-topics-review |
| HPC-Specific Topics | https://uppmax.github.io/HPC-python/day3/pandas.html#hpc-specific-topics |
| A Brief Introduction to the Seaborn Statistical Plotting Library | https://uppmax.github.io/HPC-python/day3/seaborn-new.html |
| Load and Run Seaborn | https://uppmax.github.io/HPC-python/day3/seaborn-new.html#load-and-run-seaborn |
| Common Features | https://uppmax.github.io/HPC-python/day3/seaborn-new.html#common-features |
| Plotting with Seaborn | https://uppmax.github.io/HPC-python/day3/seaborn-new.html#plotting-with-seaborn |
| Big data with Python | https://uppmax.github.io/HPC-python/day3/big_data.html |
| High-Performance Data Analytics (HPDA) | https://uppmax.github.io/HPC-python/day3/big_data.html#high-performance-data-analytics-hpda |
| Why we need to take special actions | https://uppmax.github.io/HPC-python/day3/big_data.html#why-we-need-to-take-special-actions |
| What the constraints are | https://uppmax.github.io/HPC-python/day3/big_data.html#what-the-constraints-are |
| Solutions and tools | https://uppmax.github.io/HPC-python/day3/big_data.html#solutions-and-tools |
| Allocating RAM | https://uppmax.github.io/HPC-python/day3/big_data.html#allocating-ram |
| Exercise: Memory allocation (10 min) | https://uppmax.github.io/HPC-python/day3/big_data.html#exercise-memory-allocation-10-min |
| File formats | https://uppmax.github.io/HPC-python/day3/big_data.html#file-formats |
| Exercise file formats (10 minutes) | https://uppmax.github.io/HPC-python/day3/big_data.html#exercise-file-formats-10-minutes |
| Computing efficiency with Python | https://uppmax.github.io/HPC-python/day3/big_data.html#computing-efficiency-with-python |
| Exercises: Packages | https://uppmax.github.io/HPC-python/day3/big_data.html#exercises-packages |
| Summary | https://uppmax.github.io/HPC-python/day3/big_data.html#summary |
| Running Python in batch mode | https://uppmax.github.io/HPC-python/day3/batch-new.html |
| Running your programs and scripts on UPPMAX, HPC2N, LUNARC, C3SE, NSC, and PDC | https://uppmax.github.io/HPC-python/day3/batch-new.html#running-your-programs-and-scripts-on-uppmax-hpc2n-lunarc-c3se-nsc-and-pdc |
| Example Python batch scripts | https://uppmax.github.io/HPC-python/day3/batch-new.html#example-python-batch-scripts |
| Summary day 3 | https://uppmax.github.io/HPC-python/summary3.html |
| Evaluation | https://uppmax.github.io/HPC-python/day3/evaluation.html |
| Parallel computing with Python | https://uppmax.github.io/HPC-python/day4/parallel.html |
| What is parallel programming? | https://uppmax.github.io/HPC-python/day4/parallel.html#what-is-parallel-programming |
| Why is parallel programming needed? | https://uppmax.github.io/HPC-python/day4/parallel.html#why-is-parallel-programming-needed |
| Parallelizing code in Python | https://uppmax.github.io/HPC-python/day4/parallel.html#parallelizing-code-in-python |
| 2D integration | https://uppmax.github.io/HPC-python/day4/parallel.html#d-integration |
| Serial optimizations | https://uppmax.github.io/HPC-python/day4/parallel.html#serial-optimizations |
| Shared Memory | https://uppmax.github.io/HPC-python/day4/parallel.html#shared-memory |
| Distributed Memory | https://uppmax.github.io/HPC-python/day4/parallel.html#distributed-memory |
| Monitoring resources’ usage | https://uppmax.github.io/HPC-python/day4/parallel.html#monitoring-resources-usage |
| Exercises | https://uppmax.github.io/HPC-python/day4/parallel.html#exercises |
| Using GPUs with Python | https://uppmax.github.io/HPC-python/day4/gpu.html |
| Introduction | https://uppmax.github.io/HPC-python/day4/gpu.html#introduction |
| GPUs on UPPMAX, HPC2N, LUNARC, NSC, PDC, and C3SE systems | https://uppmax.github.io/HPC-python/day4/gpu.html#gpus-on-uppmax-hpc2n-lunarc-nsc-pdc-and-c3se-systems |
| Numba example | https://uppmax.github.io/HPC-python/day4/gpu.html#numba-example |
| Exercises | https://uppmax.github.io/HPC-python/day4/gpu.html#exercises |
| Additional information | https://uppmax.github.io/HPC-python/day4/gpu.html#additional-information |
| Machine Learning and Deep Learning | https://uppmax.github.io/HPC-python/day4/ml.html |
| Introduction | https://uppmax.github.io/HPC-python/day4/ml.html#introduction |
| Comparison of ML/DL Libraries | https://uppmax.github.io/HPC-python/day4/ml.html#comparison-of-ml-dl-libraries |
| Scikit-Learn | https://uppmax.github.io/HPC-python/day4/ml.html#scikit-learn |
| PyTorch and TensorFlow | https://uppmax.github.io/HPC-python/day4/ml.html#pytorch-and-tensorflow |
| Tips and Tricks (Lessons Learned): | https://uppmax.github.io/HPC-python/day4/ml.html#tips-and-tricks-lessons-learned |
| Miscellaneous examples | https://uppmax.github.io/HPC-python/day4/ml.html#miscellaneous-examples |
| Exercises | https://uppmax.github.io/HPC-python/day4/ml.html#exercises |
| Dimensionality Reduction | https://uppmax.github.io/HPC-python/day4/dim_reduction.html |
| visualisation <–> Science | https://uppmax.github.io/HPC-python/day4/dim_reduction.html#visualisation-science |
| What is a typical machine learning task? | https://uppmax.github.io/HPC-python/day4/dim_reduction.html#what-is-a-typical-machine-learning-task |
| Some Dimensionality Reduction Techniques: | https://uppmax.github.io/HPC-python/day4/dim_reduction.html#some-dimensionality-reduction-techniques |
| Face Recognition (FR) Use case | https://uppmax.github.io/HPC-python/day4/dim_reduction.html#face-recognition-fr-use-case |
| Exercise | https://uppmax.github.io/HPC-python/day4/dim_reduction.html#exercise |
| Evaluation | https://uppmax.github.io/HPC-python/day4/evaluation.html |
| Summary day 4 | https://uppmax.github.io/HPC-python/summary4.html |
| On Bianca cluster | https://uppmax.github.io/HPC-python/bianca.html |
| Other courses | https://uppmax.github.io/HPC-python/extra/other_courses.html |
| Material for improving your Python skills | https://uppmax.github.io/HPC-python/extra/other_courses.html#material-for-improving-your-python-skills |
| Material for improving your general programming skills | https://uppmax.github.io/HPC-python/extra/other_courses.html#material-for-improving-your-general-programming-skills |
| More about packages | https://uppmax.github.io/HPC-python/extra/packages_deeper.html |
| Using setup.py | https://uppmax.github.io/HPC-python/extra/packages_deeper.html#using-setup-py |
| Developing in isolated environments | https://uppmax.github.io/HPC-python/extra/isolated_deeper.html |
| Creator/developer | https://uppmax.github.io/HPC-python/extra/isolated_deeper.html#creator-developer |
| User | https://uppmax.github.io/HPC-python/extra/isolated_deeper.html#user |
| Jupyter at Kebnekaise | https://uppmax.github.io/HPC-python/extra/jupyterHPC2N.html |
| Running JupyterLab at HPC2N - extra Python package | https://uppmax.github.io/HPC-python/extra/jupyterHPC2N.html#running-jupyterlab-at-hpc2n-extra-python-package |
| Links | https://uppmax.github.io/HPC-python/extra/jupyterHPC2N.html#links |
| On Kebnekaise cluster | https://uppmax.github.io/HPC-python/kebnekaise.html |
| Accessing Kebnekaise | https://uppmax.github.io/HPC-python/kebnekaise.html#accessing-kebnekaise |
| Loading Python | https://uppmax.github.io/HPC-python/kebnekaise.html#loading-python |
| Starting Python and running Python scripts | https://uppmax.github.io/HPC-python/kebnekaise.html#starting-python-and-running-python-scripts |
| More about ML | https://uppmax.github.io/HPC-python/day4/ML_deeper.html |
| Horovod | https://uppmax.github.io/HPC-python/day4/ML_deeper.html#horovod |
| On UPPMAX clusters | https://uppmax.github.io/HPC-python/uppmax.html |
| UPPMAX clusters | https://uppmax.github.io/HPC-python/uppmax.html#uppmax-clusters |
| UPPMAX packages | https://uppmax.github.io/HPC-python/uppmax.html#uppmax-packages |
| Next | https://uppmax.github.io/HPC-python/prereqs.html |
| Sphinx | https://www.sphinx-doc.org/ |
| theme | https://github.com/readthedocs/sphinx_rtd_theme |
| Read the Docs | https://readthedocs.org |