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

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Parallel programming using python



Published in Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    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