Skip to content

Commit 3870a83

Browse files
authored
Merge pull request #8 from AIComputing101/dev/docker
multi-GPU containerization support
2 parents b1bbf23 + 82b01d6 commit 3870a83

19 files changed

+2296
-52
lines changed

.dockerignore

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# Docker ignore file for Quantum Computing 101
2+
# Optimize build context and reduce image size
3+
4+
# Version control
5+
.git
6+
.gitignore
7+
.github/
8+
.gitmodules
9+
10+
# Python
11+
__pycache__/
12+
*.py[cod]
13+
*$py.class
14+
*.so
15+
.Python
16+
build/
17+
develop-eggs/
18+
dist/
19+
downloads/
20+
eggs/
21+
.eggs/
22+
lib/
23+
lib64/
24+
parts/
25+
sdist/
26+
var/
27+
wheels/
28+
share/python-wheels/
29+
*.egg-info/
30+
.installed.cfg
31+
*.egg
32+
MANIFEST
33+
34+
# Virtual environments
35+
venv/
36+
env/
37+
ENV/
38+
.venv/
39+
.env
40+
41+
# IDE and editor files
42+
.vscode/
43+
.idea/
44+
*.swp
45+
*.swo
46+
*~
47+
.DS_Store
48+
Thumbs.db
49+
50+
# Jupyter Notebook
51+
.ipynb_checkpoints
52+
*.ipynb
53+
54+
# Testing
55+
.pytest_cache/
56+
.coverage
57+
htmlcov/
58+
.tox/
59+
.nox/
60+
.cache
61+
nosetests.xml
62+
coverage.xml
63+
*.cover
64+
*.py,cover
65+
.hypothesis/
66+
67+
# Documentation
68+
docs/
69+
*.md
70+
!README.md
71+
!CLAUDE.md
72+
73+
# Output directories
74+
outputs/
75+
results/
76+
plots/
77+
figures/
78+
logs/
79+
80+
# Temporary files
81+
tmp/
82+
temp/
83+
*.tmp
84+
*.log
85+
86+
# Package managers
87+
node_modules/
88+
npm-debug.log*
89+
yarn-debug.log*
90+
yarn-error.log*
91+
92+
# OS generated files
93+
.DS_Store
94+
.DS_Store?
95+
._*
96+
.Spotlight-V100
97+
.Trashes
98+
ehthumbs.db
99+
Thumbs.db
100+
101+
# Large data files (if any)
102+
*.hdf5
103+
*.h5
104+
*.npz
105+
*.pkl
106+
*.pickle
107+
108+
# Compiled files
109+
*.o
110+
*.so
111+
*.dylib
112+
*.dll
113+
114+
# Docker related (avoid recursive copying)
115+
Dockerfile*
116+
docker-compose*.yml
117+
.dockerignore
118+
119+
# CI/CD
120+
.github/
121+
.gitlab-ci.yml
122+
.travis.yml
123+
.circleci/
124+
125+
# Local development
126+
local/
127+
scratch/
128+
sandbox/
129+
130+
# Cloud credentials (should never be in repo anyway)
131+
*.json
132+
*.pem
133+
*.key
134+
!examples/requirements*.txt

BEGINNERS_GUIDE.md

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,17 +101,39 @@ Welcome to your quantum computing journey! This guide will help you navigate the
101101

102102
## 🛠️ Setup Instructions
103103

104-
### Quick Start (5 minutes):
104+
### 🐳 **Option 1: Docker (Recommended - Zero Setup!)**
105+
```bash
106+
# Clone this repository first
107+
git clone https://github.com/AIComputing101/quantum-computing-101.git
108+
cd quantum-computing-101
109+
110+
# Build and run with Docker (handles all dependencies automatically)
111+
cd docker
112+
./build.sh cpu # Build lightweight CPU container (1.2GB)
113+
./run.sh -v cpu -i # Start interactive session
114+
115+
# Or run specific examples directly
116+
./run.sh -v cpu -e module1_fundamentals/01_classical_vs_quantum_bits.py
117+
118+
# Start Jupyter Lab for experimentation
119+
./run.sh -v cpu -j # Access at http://localhost:8888
120+
```
121+
122+
**🌟 Docker Benefits:**
123+
- **Zero Setup**: No Python installation or dependency management required
124+
- **Consistent Environment**: Same setup across Windows, Mac, Linux
125+
- **GPU Ready**: Easy GPU acceleration when you're ready for advanced examples
126+
- **Latest Software**: Pre-configured with optimized quantum computing stack
127+
128+
### 💻 **Option 2: Native Installation (Traditional)**
105129
```bash
106130
# Install Python 3.11+ if not already installed (3.12+ recommended)
107131
# Clone this repository first
108132
git clone https://github.com/AIComputing101/quantum-computing-101.git
109133
cd quantum-computing-101
110134

111-
# Install required packages
135+
# Install required packages (Updated v2.0)
112136
pip install -r examples/requirements-core.txt
113-
# OR install individual packages:
114-
pip install qiskit>=0.45.0 qiskit-aer>=0.13.0 matplotlib>=3.7.0 numpy>=1.24.0 pylatexenc>=2.10
115137

116138
# Test your setup
117139
python examples/module1_fundamentals/01_classical_vs_quantum_bits.py
@@ -120,6 +142,28 @@ python examples/module1_fundamentals/01_classical_vs_quantum_bits.py
120142
python verify_examples.py --quick
121143
```
122144

145+
### 🚀 **Option 3: GPU Acceleration (Advanced)**
146+
```bash
147+
# NVIDIA GPU setup (CUDA 12.6 with latest H100/A100 support)
148+
cd docker
149+
./build.sh gpu-nvidia # Build NVIDIA GPU container (3.5GB)
150+
./run.sh -v gpu-nvidia -e module6_machine_learning/01_quantum_neural_network.py
151+
152+
# AMD ROCm setup (ROCm 6.x with MI300A/MI300X support)
153+
./build.sh gpu-amd # Build AMD ROCm container (3.2GB)
154+
./run.sh -v gpu-amd -i
155+
156+
# GPU Jupyter Lab with acceleration
157+
./run.sh -v gpu-nvidia -j # NVIDIA accelerated Jupyter
158+
./run.sh -v gpu-amd -j # AMD ROCm accelerated Jupyter
159+
```
160+
161+
**🏎️ GPU Performance Benefits:**
162+
- **5-8x Speedup**: Large quantum simulations and ML workloads
163+
- **Latest Hardware**: Supports newest NVIDIA H100/A100 and AMD MI300 series
164+
- **Automatic Detection**: Build scripts detect your GPU hardware
165+
- **Optimized Libraries**: Pre-built Qiskit-Aer GPU backends for quantum acceleration
166+
123167
### Recommended Development Environment:
124168
- **Python 3.11+** (required, 3.12+ recommended for best performance)
125169
- **Jupyter Notebook** (optional but helpful for experimentation)

CHANGELOG.md

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.0.0] - 2025-09-10
11+
1012
### Added
11-
- Initial open source release preparation
12-
- Comprehensive GitHub workflows for CI/CD
13-
- Security policy and vulnerability reporting process
14-
- Issue and pull request templates
15-
- Code of conduct for community guidelines
13+
- **Docker GPU Acceleration v2.0**: Latest GPU support with cutting-edge hardware compatibility
14+
- **NVIDIA CUDA 12.6**: Updated from CUDA 12.2 for latest H100/A100 support
15+
- **AMD ROCm 6.x**: Updated from ROCm 5.x with AMD MI300A/MI300X series support
16+
- **Qiskit-Aer GPU Optimization**: Proper GPU backend installation for quantum acceleration
17+
- NVIDIA: qiskit-aer-gpu package for CUDA acceleration
18+
- AMD: Custom Qiskit-Aer build from source with ROCm gfx942 (MI300) support
19+
- **Package Conflict Resolution**: Fixed qiskit-aer CPU/GPU variant conflicts
20+
- **Performance Optimization**: Enhanced GPU detection and graceful fallbacks
21+
- **Docker Containerization**: Complete multi-GPU containerization support
22+
- CPU-only lightweight container (1.2GB) for learning and basic examples
23+
- NVIDIA CUDA GPU container (3.5GB) with 5-8x acceleration for large simulations
24+
- AMD ROCm GPU container (3.2GB) with MI300 series support
25+
- Multi-stage builds for optimal image sizes
26+
- Smart build scripts with automatic GPU hardware detection
27+
- Comprehensive run scripts with Jupyter Lab support
28+
- Docker Compose orchestration for multi-service deployments
29+
- **Enhanced Requirements Management**: Modular requirements system for better dependency management
30+
- Separated core, full, and GPU-specific requirements
31+
- Updated to latest package versions (Qiskit 1.0+, PyTorch 2.2+, Python 3.11+)
32+
- Added missing dependencies (yfinance, cryptography, boto3, qiskit-algorithms)
33+
- Optimized Docker layer caching with modular requirements structure
34+
- **Updated Python Support**: Minimum Python version increased to 3.11, with 3.12+ support
35+
- **Performance Improvements**: Updated scientific computing stack for better performance
36+
- **Cloud Integration**: Enhanced AWS Braket and IBM Quantum cloud support
1637

1738
## [1.0.0] - 2025-09-04
1839

1940
### Added
20-
- **Complete curriculum implementation**: All 40 examples across 8 modules
41+
- **Complete curriculum implementation**: All 45 examples across 8 modules
2142
- **Module 1 - Fundamentals**: 5 examples covering basic quantum concepts (1,703 LOC)
2243
- Classical vs quantum bits comparison
2344
- Quantum gates and circuits
@@ -78,11 +99,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7899
- **Production quality**: Professional code standards throughout
79100

80101
### Technical
81-
- **Total codebase**: 24,547 lines of production-grade Python code
82-
- **Dependencies**: Qiskit 2.x, NumPy, SciPy, Matplotlib, and more
83-
- **Python compatibility**: Python 3.8+
102+
- **Total codebase**: 24,547+ lines of production-grade Python code
103+
- **Dependencies**: Qiskit 1.0+, NumPy, SciPy, Matplotlib, and more
104+
- **Python compatibility**: Python 3.11+ (updated from 3.8+)
84105
- **Framework support**: Primary Qiskit with extension points for other frameworks
85106
- **Testing**: Comprehensive validation of all examples
107+
- **Container Support**: Docker-first approach with multi-GPU support
86108

87109
## [0.9.0] - 2025-08-15
88110

@@ -107,11 +129,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
107129
- Dependency and framework evaluation
108130

109131
### Implementation Phase (2025-08-15 to 2025-09-04)
110-
- Systematic implementation of all 40 examples
132+
- Systematic implementation of all 45 examples
111133
- Quality assurance and testing
112134
- Documentation completion
113135
- Code review and optimization
114136

137+
### Docker Containerization Phase (2025-09-10)
138+
- Complete Docker containerization with multi-GPU support
139+
- Requirements system refactoring and dependency updates
140+
- Performance optimizations and Python 3.11+ migration
141+
- Enhanced cloud platform integration
142+
115143
### Open Source Preparation (2025-09-04)
116144
- Community guidelines and contribution framework
117145
- Security policy and vulnerability reporting

0 commit comments

Comments
 (0)