Philippe Devloo (UNICAMP - FEC : Faculdade de Engenharia Civil) OOPAR, an object oriented environment for the development of parallel software OOPAR consists of a set of classes which makes the implementation of parallel algorithms easier. Within the OOPAR framework a parallel algorithm consists of a set of tasks which act on a set of objects modifying their version. In this sense the OOPAR environment is based on the dataflow programming concept. There three basic main interfaces within OOPAR: Distributed data allows the user to associate a unique id and version with each submitted data object. The distributed data objects are managed by a DataManager, which is represented by a single instance on each processor. The DataManager decides which task objects (explained below) have access to the data. Tasks are objects from a class derived from the OOPTask class and which implement a Execute() interface. The execute method implement part of a parallel algorithm and transform one or more distributed data objects. The dependency of the task on the distributed data objects and their version are declared prior to submitting the task to the TaskManager. Tasks can be assigned to execute on any processor of the parallel machine. The communication manager implements the interface to the communication library. Tasks and distributed data can be transmitted to other processors using the serialization mechanism. OOPAR has been successfully used in the paralelization of a large CFD code. The main benefits of the use of OOPAR are: gradual paralelization, a unique code base for both the parallel and serial code (using #ifdef statements), capability of running the serial code and parallel code within a single process and a single implementation for both shared memory and distributed memory architectures.