ABSTRACT

Department of Computer Science, University of Illinois at Urbana-Champaign

2.1 Simple Stencil: Using Over-Decomposition and Selecting Grainsize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.1.1 Grainsize Decisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.2 Multicore Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.3 Migrating Chares, Load Balancing and Fault Tolerance 21

2.2 Multi-Physics Modules Using Multiple Chare Arrays . . . . . . . . . . . 23 2.2.1 LeanMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.3 SAMR: Chare Arrays with Dynamic Insertion and Flexible Indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.4 Combinatorial Search: Task Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.5 Other Features and Design Considerations . . . . . . . . . . . . . . . . . . . . . . 30 2.6 Utility of Charm++ for Future Applications . . . . . . . . . . . . . . . . . . . . 31 2.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

We learned about the design philosophy, and basic concepts in Charm++, as well as its features and benefits in Chapter 1. In this chapter, we will review the process of designing Charm++-based applications, and discuss the design issues involved. Specifically, we will illustrate how to use individual features of Charm++, through a series of examples.