A balanced overview of the techniques used to design and program parallel computers

There is a software gap between parallel computers and programmers' abilities to program such computers. Programming a parallel computer requires closely studying the target algorithm or application, more so than in traditional sequential programming.

There are many applications that require parallel and distributed processing to allow complicated engineering, business and research problems to be solved in a reasonable time. Parallel and distributed processing is able to improve company profit, lower costs of design, production, and deployment of new technologies, and create better business environments.

This book presents advances in high performance computing as well as advances accomplished using high performance computing. It contains a collection of papers presenting results achieved in the collaboration of scientists from computer science, mathematics, physics, and mechanical engineering. From science problems to mathematical algorithms and on to the effective implementation of these algorithms on massively parallel and cluster computers, the book presents state-of-the-art methods and technology, and exemplary results in these fields.

The communication complexity of two-party protocols is an only 15 years old complexity measure, but it is already considered to be one of the fundamen­ tal complexity measures of recent complexity theory.

Learn from legendary Japanese Ruby hacker Masatoshi Seki in this first English-language book on his own Distributed Ruby library. You'll find out about distributed computing, advanced Ruby concepts and techniques, and the philosophy of the Ruby way–-straight from the source.