Inhalt des Dokuments
Multicore architectures increase the programming
effort significantly. It is expected that future processors will
contain more cores, have a heterogeneous architecture, and implement
different memory models. These architectural features are currently
visible to the programmer and dramatically increase the effort for
creating performance portable software. ComponentC is a novel
component-oriented parallel programming language, which allows the
programmer to intuitively specify extendable and maintainable parallel
code that is compatible with future multicore architectures.
ComponentC merges concepts of both sequential object-oriented and the inherently parallel hardware description languages. This results in language constructs (components and signals), which allow binding data, functionality, and execution, and admits intuitive inter-component communication. The execution model is sufficiently flexible to integrate advanced scheduling strategies. Furthermore, transparently to the programmer, ComponentC is conceptually able to adapt to various (shared) memory architectures.
Future work in this area is abundant. A few examples are developing a ComponentC parser frontend, research in runtime scheduling, porting parallel applications, integration in operating systems, a split private and shared address space, runtime management of local memory, and synchronization and communication hardware support.