The ``Ubiquitous Agent'' Design Pattern By Jean-Marc J\'ez\'equel and Jean-Lin Pacherie Contact name: Jean-Marc Jezequel e-mail : jezequel@irisa.fr Yonezawa lab Dept. of Information Science Faculty of Science The University of Tokyo Hongo Bunkyo-Ku, Tokyo 113, JAPAN Tel : +81 (3) 3812-2111 ext. 4116 Fax : +81 (3) 5689-4365 Encapsulating parallelism and synchronization code within object-oriented software components is a promising avenue towards mastering the complexity of the distributed memory supercomputer programming. However, in trying to give application programmers benefit of supercomputer power, the library designer generally resorts to low level parallel constructs, a time consuming and error prone process. To solve this problem we introduce a new design pattern called Ubiquitous Agent. An Ubiquitous Agent is an object that exists simultaneously on all processors involved in a distributed computation: it acts as a single ubiquitous entity capable of processing shared or distributed data in parallel. In this paper we describe the motivation, applicability and structure of this design pattern.