The global-to-local and local-to-global calls described in the previous section are called independently on each processor. Each processor may call these routines a different number of times, where each call has different sub-vector or sub-matrix specifications. Thus, each processor is computing a different set of contributions to the global linear algebra objects.
Each global-to-local or local-to-global API routine initiates the specified operation. Once initiated, communication required for a given operations is asynchronous. Thus several API operations may be initiated without any having completed. Pending global-to-local or local-to-global API operations are complete upon synchronization of the application's processors. While in the API-active state the nodes are synchronized by calling one of the following:
place HR here
- PLA_API_end,
- PLA_Obj_API_close (ensures consistency only for the object being closed), or
- PLA_Obj_API_sync for a given object.
place HR here This routine insures that all pending ``API-axpy'' operations have completed for the object, synchronizes the processors, and leaves the code in the API-active state. This call acts like a barrier.