parallel computing best practices transfer to our lives:
break tasks down to their smallest logical units, but no further.
seek out and eliminate needless dependencies.
be mindful of interruptions and context switching.
schedule similar tasks together.
optimize for concurrency.