PetaSIM is a performance estimator aimed at supporting the conceptual and detailed design phases of parallel algorithms, systems software, and hardware architectures. PetaSIM is aimed at a middle ground - half way between detailed instruction level machine simulation and simple "back of the envelope" performance estimates. It takes care of the complexity - memory hierarchy, latencies, adaptivity and multiple program components which make even high level performance estimates hard. It uses a crucial simplification - dealing with data in the natural blocks (called aggregates, which can be a block of grid points or particles depending on the application) suggested by memory systems - which both speeds up the performance simulation and in many cases will lead to greater insight as to the essential issues governing performance. PetaSIM defines a framework in which the user provides description of the computer and problem and the primitive costs of I/O, communication and computation. The basic idea in PetaSIM is to use a sophisticated spreadsheet. Each cell of the spreadsheet represents a memory unit in the computer (disks, main memory, cache, network etc.) and generated from the machine description. User speficies a strategy called execution script to move aggregates through the cells. Some special cells have CPUs attached to them. An aggergate is computed when it lands on a CPU cell. The execution script defines the behaviour of an application on the given parallel machine.
This is a joint project of PetaSIM (developed in Northeast Parallel Architectures Center, Syracuse University) and Application emulators (developed in Computer Science Department, Univ. of Maryland at College Park), developed in the framework of project Performance Prediction and Modeling of Compute and Data Intensive Applications on Current and Future High Performance Architectures.
This research was supported by the Department of Defense, Advance Research Projects Agency under contract No. N66001-97-C-8534.