- 1. Python in Parallel
- 2. Parallel
- 2.1. Types of Problems
- 2.2. Types of solutions
- 2.3. Time slicing
- 2.4. Concurrencies
- 2.5. How many parallels to use?
- 2.6. Dividing jobs
- 2.7. Performance Monitoring
- 3. Threads
- 3.1. Python Threading docs
- 3.2. Threaded counters
- 3.3. Simple threaded counters
- 3.4. Simple threaded counters (parameterized)
- 3.5. Pass parameters to threads - Counter with attributes
- 3.6. Create a central counter
- 3.7. Lock - acquire - release
- 3.8. Counter - plain
- 3.9. GIL - Global Interpreter Lock
- 3.10. Thread load
- 3.11. Exercise: thread files
- 3.12. Exercise: thread URL requests.
- 3.13. Exercise: thread queue
- 3.14. Solution: thread queue
- 3.15. Solution: thread URL requests.
- 3.16. Concurrency
- 3.17. Create a counter queue
- 3.18. A Queue of tasks
- 4. Forking
- 4.1. Fork
- 4.2. Forking
- 4.3. Fork skeleton
- 4.4. Fork with load
- 4.5. Fork load results
- 4.6. Marshalling / Serialization
- 4.7. Fork with random
- 4.8. Exercise: fork return data
- 4.9. Solution: fork return data
- 5. Multiprocess
- 5.1. Multiprocess CPU count
- 5.2. Multiprocess N files: Pool
- 5.3. Multiprocess load
- 5.4. Multiprocess: Pool
- 5.5. Multiprocess load async
- 5.6. Multiprocess and logging
- 5.7. Exercise: Process N files in parallel
- 5.8. Exercise: Process N Excel files in parallel
- 5.9. Exercise: Fetch URLs in parallel
- 5.10. Exercise: Fetch URLs from one site.
- 5.11. Solution: Process N files in parallel
- 5.12. Solution: Fetch URLs in parallel
- 6. Multitasking
- 6.1. What is Multitasking?
- 6.2. Multitasking example
- 6.3. Multitasking example with wait
- 6.4. Multitaksing - second loop waits for first one
- 6.5. Multitasking counter
- 6.6. Multitasking counter with thread locking