Imprecise Exceptions in Distributed Parallel Components Kostadin Damevski and Steven Parker School of Computing, University of Utah, Salt Lake City UT 84112, USA Abstract. Modern microprocessors have sacrificed the exactness of ex- ceptions for improved performance long ago. This is a side effect of re- ordering instructions so that the microprocessor can execute instructions which were not to be executed due to an exception. By throwing more cir- cuits at the problem, microprocessors are designed so that they are able to roll back to the instruction causing the exception. However, some mi- croprocessors, like the HP Alpha, do not roll back and impose a paradigm of inaccurate exceptions. This decision can reduce circuit complexity and increase speed. We propose a similar method of handling exceptions in a component environment that achieves high performance by sacrific- ing exception accuracy when dealing with parallel Single Program Mul- tiple Data (SPMD) components. The particular domain this design is intended for is high performance computing, which requires maximum resource use and efficiency. A performance-centric way to handle excep- tions is explained as well as additional methodology to enforce exception strictness if required. 1 Introduction The component software abstraction is one that has been leveraged in multiple computing environments. One such environment is that of high performance sci- entific computing (see [1]). High performance computing is an environment that, more so than others, emphasizes optimizing the performance of the application. In order to achieve the maximum possible performance and leverage distributed computing potential, the execution of an application may be performed in paral- lel by multiple parallel computing threads. Typical parallel algorithms divide the problem space in some fashion among the available computing threads, which work in concert to solve the problem, sometimes communicating part of the developing solution to each other. These algorithms often employ the Single Program Multiple Data (SPMD) programming paradigm. In a component environment, multiple computing threads can be coupled to form one component called an SPMD parallel component. This collection of computing threads is intended to work collaboratively to solve some problem. In order to provide interaction between SPMD parallel components in a distributed environment, collective method invocations are used from a proxy 1 to a parallel 1 Proxies are objects used to represent other objects. All requests to the proxy are forwarded to the represented object. They are used frequently in distributed mid-