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.