Your SlideShare is downloading. ×
Parallel programming using python
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Parallel programming using python


Published on

Published in: Technology, Education

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Introduction to Parallel Programming using Python Presented by: Samah Gad July 11, 2013 Friday, July 12, 13
  • 2. Road Map Motivation Forking Processes Threads Interprocess Communication - Overview The multiprocessing Module - Overview Friday, July 12, 13
  • 3. Motivation Problem: Most computers spend a lot of time doing nothing. Majority of the modern CPU’s capacity is often spent in an idle state. Friday, July 12, 13
  • 4. Motivation -Cont. Solution: Running more than one program at a time. Dividing the CPU attention among a set of tasks. Parallel Processing, Multiprocessing, or Multitasking. Friday, July 12, 13
  • 5. Parallel Processing in Python Two main ways to run tasks: Process forks Spawned threads Python built-in tools like: os.fork, threading, queue, and multiprocessing. Third Party domains offers more advanced tools. Friday, July 12, 13
  • 6. Forking Processes Traditional ways to structure parallel tasks. Straight forward way to start an independent program. What is forking? Copying programs. Python Module - os.fork Friday, July 12, 13
  • 7. Example 1 Friday, July 12, 13
  • 8. Example 2 Friday, July 12, 13
  • 9. Threads Another way to start activities running at the same time. Lightweight processes Run within the same single process. Friday, July 12, 13
  • 10. Threads - Advantages: Performance Simplicity Shared global memory Portability Friday, July 12, 13
  • 11. Python Modules Python Modules: _thread module threading modules Both modules provide tools for synchronizing access to shared objects with locks. Friday, July 12, 13
  • 12. The _thread Module Start new independent threads of execution within a process. Doesn't support OOP Platform independent module. Friday, July 12, 13
  • 13. Example 3 Friday, July 12, 13
  • 14. Example 4 Friday, July 12, 13
  • 15. Synchronizing access to shared objects and names What is the problem? Objects and namespaces in a process that span the life of threads are shared by all spawned threads. Solution: Threads automatically come with a cross-task communications Friday, July 12, 13
  • 16. Example 5 Friday, July 12, 13
  • 17. Threading Module Internally uses the _thread module to implement objects that represent threads and common synchronization tools. Manage threads with high-level class- based objects. Friday, July 12, 13
  • 18. Interprocess Communication - Overview Other solutions don’t support cross- program communication Sockets, Pipes, and Signals Enable performing Inter-Process Communication (IPC) Friday, July 12, 13
  • 19. The multiprocessing Module - Overview Provide the best of processes and threads. Platform independent. Uses processes instead of threads. Provide synchronizations tools. Leverage the capacity of multiple processors. Friday, July 12, 13
  • 20. Reference Title: Programming Python Author: Mark Lutz Publisher:O'Reilly Media; Fourth Edition edition (January 7, 2011) Friday, July 12, 13