There are many design patterns today that deal with
multiprocessing and parallel computing. These are considered to be the most
complicated issues when designing a system and therefore many patterns have
evolved to help us. To this day the majority of design patterns where created to
help us avoid the pitfalls of parallel computing. In other words we try to make
our single process design work in a parallelized system.
The design patterns section brought here is doing
something completely different. A good design for a parallelized system starts
with a change in mindset from serial programming to parallel programming. Based
on this 'thinking in parallel' mindset and on the Multiprocessing Traps &
Pitfalls section we can come up with new ways to do our work. Just like any
design pattern we can reinvent it all every time again and again or we can
extract methodologies. These are the design patterns that you see here in this
We start with the basic synchronization objects for
those of us that migrated from synchronous programming to asynchronous
programming (all of us?).