-
Notifications
You must be signed in to change notification settings - Fork 11
Home
Damian Rouson edited this page Mar 10, 2022
·
7 revisions
The compiler is responsible for
- Allocating any nonallocatable coarrays upon program initiation
- Deallocating any allocatable, local coarrays upon exiting a procedure or
blockconstruct
- We need to be able to allocate symmetric and asymmetric shared objects
- We will exploit symmetry to reduce costs
- Alternatives:
- Static partitioning: cut the shared heap into two pieces at startup and run allocators independently on each portion of the shared memory. (Pro: simplicity. Con: User must specify symmetric/asymmetric sizes at startup.)
- Dynamic partitioning: (Pro: allows utilization to be determined at runtime by program behavior. Con: complexity.)
- We will provide the memory segment and the allocator adheres to the provided bounds
- We want an allocator with deterministic: given the same input a stream of allocate/deallocate calls, the output is a deterministic set of pointers.
- We need the ability to implicitly free objects at
end teamstatements.