Showing posts with label MPI. Show all posts
Showing posts with label MPI. Show all posts

2009-05-02

2009-05-02 Saturday - Simulation Based Engineering

Shift in Simulation Superiority...

International Assessment of Research and Development in Simulation-Based Engineering and Science, released on Apr. 22, 2009, by the World Technology Evaluation Center (WTEC).

This WTEC panel report assesses the international research and development activities in the field of Simulation-Based Engineering and Science (SBE&S). SBE&S involves the use of computer modeling and simulation to solve mathematical formulations of physical models of engineered and natural systems. SBE&S today has reached a level of predictive capability that it now firmly complements the traditional pillars of theory and experimentation/observation. As a result, computer simulation is more pervasive today – and having more impact – than at any other time in human history. Many critical technologies, including those to develop new energy sources and to shift the cost-benefit factors in healthcare, are on the horizon that cannot be understood, developed, or utilized without simulation. A panel of experts reviewed and assessed the state of the art in SBE&S as well as levels of activity overseas in the broad thematic areas of life sciences and medicine, materials, and energy and sustainability; and in the crosscutting issues of next generation hardware and algorithms; software development; engineering simulations; validation, verification, and uncertainty quantification; multiscale modeling and simulation; and SBE&S education. The panel hosted a U.S. baseline workshop, conducted a bibliometric analysis, consulted numerous experts and reports, and visited 59 institutions and companies throughout East Asia and Western Europe to explore the active research projects in those institutions, the computational infrastructure used for the projects, the funding schemes that enable the research, the collaborative interactions among universities, national laboratories, and corporate research centers, and workforce needs and development for SBE&S.

The panel found that SBE&S activities abroad are strong, and compete with or lead the United States in some strategic areas. Both here and abroad, SBE&S is changing the way disease is treated, the way surgery is performed and patients are rehabilitated, and the way we understand the brain; changing the way materials and
components are designed, developed, and used in all industrial sectors; and aiding in the recovery of untapped oil, the discovery and utilization of new energy sources, and the way we design sustainable infrastructures. Data intensive and data-driven applications were evident in many countries. Achieving millisecond timescales with molecular resolution for proteins and other complex matter is now within reach due to new architectures and algorithms. The fidelity of engineering simulations is being improved through inclusion of physics and chemistry. There is excitement about the opportunities that petascale computers will afford, but concern about the ability to program them. Because fast computers are now so affordable, and several countries are committed to petascale computing and beyond, what will distinguish us from the rest of the world is our ability to do SBE&S better and to exploit new architectures we develop before those architectures become ubiquitous. Inadequate education and training of the next generation of computational scientists and engineers threatens global as well as U.S. growth of SBE&S. A persistent pattern of subcritical funding overall for SBE&S threatens U.S. leadership and continued needed advances, while a surge of strategic investments in SBE&S abroad reflects recognition by those countries of the role of simulation in advancing national competitiveness and its effectiveness as a mechanism for economic .

(...)

NEW PROGRAMMING LANGUAGES

Most of the new petascale systems are built on multicores with complex memory hierarchies. From the programming standpoint, these new large multicore systems present another major disruptive technology—a challenge even greater than cluster computing and message passing. According to John Hennessy of Stanford University, this is “the biggest problem Computer Science has ever faced”. Simple porting of highly scalable codes like the QBOX or any computational mechanics codes will not lead to any reasonable efficiency, and it carries the danger of largely underutilizing these very expensive petaflop systems, as the PITAC report suggested. Researchers will need to rewrite their application codes and rethink carefully their corresponding algorithms and software. Numerical libraries such as ScaLAPACK will have to undergo major changes to accommodate multicore and multithread computing. The complexity that this involves can be illustrated with a simple example: Consider a system with 128 cores per socket, with 32 sockets per node, and with 128 nodes per system for a total of 524,288 cores. Let us also assume that the system has four threads of execution per core. Hence, the total number of threads that a researcher has to handle is two million, a large number of threads indeed!

Management of so many threads is an almost impossible task, even for very experienced programmers, and therefore new programming languages are required to deal with this enormous multithreading complexity. New languages from the High Productivity Computing Systems (HPCS) program of the U.S. Defense Advanced Research Projects Agency (DARPA) point the way toward the next-generation programming environment on petaflop computers. Specifically, Partitioned Global Address Space (PGAS) languages for the SPMD (single program multiple data) model, such as Unified Parallel C (UPC), co-Array Fortran, and Titanium, and dynamic languages (X10/IBM, Fortress/Sun, Chapel/Cray), offer many advantages for programming in the new environments. They support both private and shared data, distributed data structures, one-sided memory communications, synchronization, and collective communications. PGAS languages are a good fit to shared memory computers but also to hybrid shared/distributed architectures, and they have locality that may be important when dealing with more than 100 cores per chip.

UPC, in particular, is expressive enough to allow programmers to hand-optimize. An example is shown in Figure 5.5, where UPC is compared against MPI for gather/scatter operations used in finite element codes; there is a clear factor-of-two speedup by using optimized UPC instead of MPI. In terms of the dynamic languages, X10 emphasizes parallel safety, whereas Fortress and Chapel emphasize expressivity. Fortress uses a math-like representation; X10 and Chapel employ a more traditional programming language front-end. Before the HPC community is likely to adopt these new languages, however, there are many challenges to be addressed, including interoperability with the existing languages, scalable memory models, and parallel I/O procedures.

2009-04-21

2009-04-21 Tuesday - MPI Tutorials

wikipedia.org: Message Passing Interface

cmu.edu What is MPI?

Boston University, Scientific Computation & Visualization: Multiprocessing by Message Passing MPI

Blaise Barney, Lawrence Livermore National Laboratory
http://www.llnl.gov/computing/tutorials/mpi/#Getting Started

Basic MPI
(Tom Murphy, Dave Joiner, Paul Gray, Henry
Neeman, Charlie Peck, Alex Lemann, Kristina
Wanous, Kevin Hunter)

OpenMPI Modular Component Architecture (MCA)
FAQ:General run-time tuning



Open MPI: Version 1.3.1

The Portland Group: PGI Guide for OpenMPI

The Portland Group: MPI Debugging and Profiling

Lecture Notes: MPI Application Development Using the Analysis Tool MARMOT - by Bettina Krammer, Matthias S. Müller, and Michael M. Resch1; High Performance Computing Center; Stuttgart, Germany.

Writing Hybrid MPI/OpenMP Code


Internet Parallel Computing Archive
Hosted by WoTUG at Computer Science Department, University of Kent at Canterbury, UK
Designing and Building Parallel Programs, by Ian Foster

Internet Parallel Computing Archive > Books


2009-04-23 Thursday Update:
MPI.NET: High-Performance C# Library for Message Passing

2009-03-04

2009-03-04 Wednesday - Open / Message Passing Interface (MPI)

This evening, while doing some research on SOA and Cloud Computing technologies, I came across this article on the Center for High Performance Computing, University of Utah: How to compile and run a trivial MPI program through the CHPC Batch system

Open MPI
"Open MPI is a project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) with the stated aim of building the best Message Passing Interface (MPI) library available. It is used by many TOP500 supercomputers including Roadrunner, which is as of 2008 the world's fastest supercomputer."

Open MPI represents the merger between three well-known MPI implementations:

- FT-MPI from the University of Tennessee
- LA-MPI from Los Alamos National Laboratory
- LAM/MPI from Indiana University

with contributions from the PACX-MPI team at the University of Stuttgart. These four institutions comprise the founding members of the Open MPI development team.


Message Passing Interface (MPI):
"...a specification for an API that allows many computers to communicate with one another. It is used in computer clusters and supercomputers. MPI was created by William Gropp and Ewing Lusk and others."
(...)
"MPI is a language-independent communications protocol used to program parallel computers. Both point-to-point and collective communication are supported. MPI "is a message-passing application programmer interface, together with protocol and semantic specifications for how its features must behave in any implementation."[1] MPI's goals are high performance, scalability, and portability. MPI remains the dominant model used in high-performance computing today."



The Los Alamos Message Passing Interface
("LA-MPI is no longer in active development, but is being maintained for use on production systems at LANL...future development is focused on the Open MPI project, a new component-based, extensible implementation of MPI-2.")


Open MPI: Open Source High Performance Computing

MPI.NET: High-Performance C# Library for Message Passing

Intel® MPI Library 3.2 for Linux or Windows
"Implementing the high performance MPI-2 specification on multiple
fabrics, Intel® MPI Library 3.2 focuses on making applications perform better on IA based clusters. Intel MPI Library enables you to quickly deliver maximum end user performance even if you change or upgrade to new interconnects, without requiring major changes to the software or to the operating environment. Intel also provides a free runtime environment kit for products developed with the Intel MPI library."


On-Demand MPI Cluster with Python and EC2 (part 1 of 3)

MPI Cluster with Python and Amazon EC2 (part 2 of 3)

Data Wrangling Image: Fedora Core 6 MPI Compute Node with Python Libraries





MPI-HMMER is an open source MPI implementation of the HMMER protein sequence analysis suite. The main search algorithms, hmmpfam and hmmsearch, have been ported to MPI in order to provide high throughput HMMER searches on modern computational clusters.

Microsoft MPI





Older MPI References

Message Passing Interface Forum
MPI Documents

LAM/MPI Parallel Computing

IBM MPI Programming Guide
IBM MPI Subroutine Reference
IBM Redbooks - RS/6000 SP: Practical MPI Programming

MPI.NET Software

MPI Tutorials

Ohio Supercomputer Center Introduction to Parallel Computing with MPI

Stanford Linear Accelerator Center (SLAC) MPI Tutorial

MPI FORTRAN90 Examples

The Message Passing Interface (MPI) standard

MPICH-A Portable Implementation of MPI

Blaise Barney, Lawrence Livermore National Laboratory: Message Passing Interface (MPI)

SP Parallel Programming Workshop

HARNESS Fault Tolerant MPI

Parallel Programming with MPI by Peter Pacheco

Message Passing Interface (MPI) FAQ

HP Message Passing Interface library (HP-MPI)

National Energy Research Scientific Computing Center, Introduction to MPI
(A DOE Office of Science User Facility at Lawrence Berkeley National Laboratory)

Interoperable MPI, National Institute of Standards and Technology

Internet Parallel Computing Archive > Parallel > Standards > mpi

MPI-FM: Message Passing Interface on Fast Messages
"MPI-FM is a high-performance cluster implementation of the Message Passing Interface (MPI) based on a port of MPICH to Fast Messages. The Message Passing Interface is an industry standard communication interface for message-passing parallel programs. It provides a wealth of capabilities including synchronous and asynchronous messaging, datatypes, and communicators. MPI-FM is a complete implementation of the MPI standard 1.0 based on the Argonne/MSU MPICH code base. However, the MPICH code base was tuned significantly to avoid buffer copies and reduce the critical path length for message reception. The effective software overhead for the MPI send/receive is below 3 microseconds in MPI-FM."


MPI-CHECK (FORTRAN)

P2P-MPI

Condor Version 6.6.11 Manual, Condor Team, University of Wisconsin-Madison




2009-04-24 Friday Update:

Heidi Poxon, Technical Lead, Performance Tools, Cray Inc.
Craypat OpenMP and MPI Metrics

WordCount

Copyright

© 2001-2026 International Technology Ventures, Inc., All Rights Reserved.