Introduction to parallel computing (Addison-Wesley, 2003)