Inside the Message Passing Interface


Book Description

A hands-on guide to writing a Message Passing Interface, this book takes the reader on a tour across major MPI implementations, best optimization techniques, application relevant usage hints, and a historical retrospective of the MPI world, all based on a quarter of a century spent inside MPI. Readers will learn to write MPI implementations from scratch, and to design and optimize communication mechanisms using pragmatic subsetting as the guiding principle. Inside the Message Passing Interface also covers MPI quirks and tricks to achieve best performance. Dr. Alexander Supalov created the Intel Cluster Tools product line, including the Intel MP Library that he designed and led between 2003 and 2015. He invented the common MPICH ABI and also guided Intel efforts in the MPI Forum during the development of the MPI-2.1, MPI-2.2, and MPI-3 standards. Before that, Alexander designed new finite-element mesh-generation methods, contributing to the PARMACS and PARASOL interfaces, and developed the first full MPI-2 and IMPI implementations in the world. He graduated from the Moscow Institute of Physics and Technology in 1990, and earned his PhD in applied mathematics at the Institute of Numerical Mathematics of the Russian Academy of Sciences in 1995. Alexander holds 26 patents (more pending worldwide).




Using Advanced MPI


Book Description

A guide to advanced features of MPI, reflecting the latest version of the MPI standard, that takes an example-driven, tutorial approach. This book offers a practical guide to the advanced features of the MPI (Message-Passing Interface) standard library for writing programs for parallel computers. It covers new features added in MPI-3, the latest version of the MPI standard, and updates from MPI-2. Like its companion volume, Using MPI, the book takes an informal, example-driven, tutorial approach. The material in each chapter is organized according to the complexity of the programs used as examples, starting with the simplest example and moving to more complex ones. Using Advanced MPI covers major changes in MPI-3, including changes to remote memory access and one-sided communication that simplify semantics and enable better performance on modern hardware; new features such as nonblocking and neighborhood collectives for greater scalability on large systems; and minor updates to parallel I/O and dynamic processes. It also covers support for hybrid shared-memory/message-passing programming; MPI_Message, which aids in certain types of multithreaded programming; features that handle very large data; an interface that allows the programmer and the developer to access performance data; and a new binding of MPI to Fortran.




Programming Environments for Massively Parallel Distributed Systems


Book Description

Massively Parallel Systems (MPSs) with their scalable computation and storage space promises are becoming increasingly important for high-performance computing. The growing acceptance of MPSs in academia is clearly apparent. However, in industrial companies, their usage remains low. The programming of MPSs is still the big obstacle, and solving this software problem is sometimes referred to as one of the most challenging tasks of the 1990's. The 1994 working conference on "Programming Environments for Massively Parallel Systems" was the latest event of the working group WG 10.3 of the International Federation for Information Processing (IFIP) in this field. It succeeded the 1992 conference in Edinburgh on "Programming Environments for Parallel Computing". The research and development work discussed at the conference addresses the entire spectrum of software problems including virtual machines which are less cumbersome to program; more convenient programming models; advanced programming languages, and especially more sophisticated programming tools; but also algorithms and applications.




Using MPI


Book Description

The authors introduce the core function of the Message Printing Interface (MPI). This edition adds material on the C++ and Fortran 90 binding for MPI.




Using MPI-2


Book Description

Using MPI is a completely up-to-date version of the authors' 1994 introduction to the core functions of MPI. It adds material onthe new C++ and Fortran 90 bindings for MPI throughout the book. The Message Passing Interface (MPI) specification is widely used for solving significant scientific and engineering problems on parallel computers. There exist more than a dozen implementations on computer platforms ranging from IBM SP-2 supercomputers to clusters of PCs running Windows NT or Linux ("Beowulf" machines). The initial MPI Standard document, MPI-1, was recently updated by the MPI Forum. The new version, MPI-2, contains both significant enhancements to the existing MPI core and new features.Using MPI is a completely up-to-date version of the authors' 1994 introduction to the core functions of MPI. It adds material on the new C++ and Fortran 90 bindings for MPI throughout the book. It contains greater discussion of datatype extents, the most frequently misunderstood feature of MPI-1, as well as material on the new extensions to basic MPI functionality added by the MPI-2 Forum in the area of MPI datatypes and collective operations.Using MPI-2 covers the new extensions to basic MPI. These include parallel I/O, remote memory access operations, and dynamic process management. The volume also includes material on tuning MPI applications for high performance on modern MPI implementations.




Raspberry Pi Supercomputing and Scientific Programming


Book Description

Build an inexpensive cluster of multiple Raspberry Pi computers and install all the required libraries to write parallel and scientific programs in Python 3. This book covers setting up your Raspberry Pis, installing the necessary software, and making a cluster of multiple Pis. Once the cluster is built, its power has to be exploited by means of programs to run on it. So, Raspberry Pi Supercomputing and Scientific Programming teaches you to code the cluster with the MPI4PY library of Python 3. Along the way, you will learn the concepts of the Message Passing Interface (MPI) standards and will explore the fundamentals of parallel programming on your inexpensive cluster. This will make this book a great starting point for supercomputing enthusiasts who want to get started with parallel programming. The book finishes with details of symbolic mathematics and scientific and numerical programming in Python, using SymPi, SciPy, NumPy, and Matplotlib. You’ll see how to process signals and images, carry out calculations using linear algebra, and visualize your results, all using Python code. With the power of a Raspberry Pi supercomputer at your fingertips, data-intensive scientific programming becomes a reality at home. What You Will Learn Discover the essentials of supercomputing Build a low-cost cluster of Raspberry Pis at home Harness the power of parallel programming and the Message Passing Interface (MPI) Use your Raspberry Pi for symbolic, numerical, and scientific programming Who This Book Is For Python 3 developers who seek the knowledge of parallel programming, Raspberry Pi enthusiasts, researchers, and the scientific Python community.




Parallel Programming with MPI


Book Description

Mathematics of Computing -- Parallelism.




Introduction to HPC with MPI for Data Science


Book Description

This gentle introduction to High Performance Computing (HPC) for Data Science using the Message Passing Interface (MPI) standard has been designed as a first course for undergraduates on parallel programming on distributed memory models, and requires only basic programming notions. Divided into two parts the first part covers high performance computing using C++ with the Message Passing Interface (MPI) standard followed by a second part providing high-performance data analytics on computer clusters. In the first part, the fundamental notions of blocking versus non-blocking point-to-point communications, global communications (like broadcast or scatter) and collaborative computations (reduce), with Amdalh and Gustafson speed-up laws are described before addressing parallel sorting and parallel linear algebra on computer clusters. The common ring, torus and hypercube topologies of clusters are then explained and global communication procedures on these topologies are studied. This first part closes with the MapReduce (MR) model of computation well-suited to processing big data using the MPI framework. In the second part, the book focuses on high-performance data analytics. Flat and hierarchical clustering algorithms are introduced for data exploration along with how to program these algorithms on computer clusters, followed by machine learning classification, and an introduction to graph analytics. This part closes with a concise introduction to data core-sets that let big data problems be amenable to tiny data problems. Exercises are included at the end of each chapter in order for students to practice the concepts learned, and a final section contains an overall exam which allows them to evaluate how well they have assimilated the material covered in the book.




MPI


Book Description




Recent Advances in Parallel Virtual Machine and Message Passing Interface


Book Description

This book constitutes the refereed proceedings of the 11th European PVM/MPI users' Group Meeting held in Budapest, Hungary, in September 2004. The 50 revised papers presented together with abstracts of 10 invited contributions were carefully reviewed and selected from numerous submissions. The papers are organized in topical sections on MPI/PVM extensions and improvements, algorithms, applications, tools and environments, cluster and grid computing, performance, and parallel numerical simulation.