| Accepted by (2007) | |||||||||||||||
Abstract | |||||||||||||||
| Currently, there exist different approaches to parallelizing a computation at a coarse-grain. One approach is to parallelize a computation by placing compiler declarations in the source code. This approach makes it possible to conceptually separate the code describing a computation from the code (i.e. declarations) describing its parallelization. This approach also makes it possible to explicitly control a computation's parallelization, thereby providing an opportunity to increase the computation 's performance. However, there are cases when it is not reasonable to expect a desired mechanism for concurrency to be supported by the available, and fixed set of declarations, such as when the desired mechanism is highly specialized to a given computation and target architecture. In these cases, the declaration-based approach fails. In this thesis, we demonstrate that metaobject protocols can solve this problem. Under the metaobject protocol approach, a computation is parallelized by marking source code expressions with marks supported by the compiler. Marks, like declarations, are used to separate a computation from its parallelization. When the | |||||||||||||||
Publication details | |||||||||||||||
| |||||||||||||||