@phdthesis{Christgau2017, author = {Christgau, Steffen}, title = {One-sided communication on a non-cache-coherent many-core architecture}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:517-opus4-403100}, school = {Universit{\"a}t Potsdam}, pages = {219}, year = {2017}, abstract = {Aktuelle Mehrkernprozessoren stellen parallele Systeme dar, die den darauf ausgef{\"u}hrten Programmen gemeinsamen Speicher zur Verf{\"u}gung stellen. Sowohl die ansteigende Kernanzahlen in sogenannten Vielkernprozessoren (many-core processors) als auch die weiterhin steigende Leistungsf{\"a}higkeit der einzelnen Kerne erfordert hohe Bandbreiten, die das Speichersystem des Prozessors liefern muss. Hardware-basierte Cache-Koh{\"a}renz st{\"o}ßt in aktuellen Vielkernprozessoren an Grenzen des praktisch Machbaren. Dementsprechend m{\"u}ssen alternative Architekturen und entsprechend geeignete Programmiermodelle untersucht werden. In dieser Arbeit wird der Single-Chip Cloud Computer (SCC), ein nicht-cachekoh{\"a}renter Vielkernprozessor betrachtet, der aus 48, {\"u}ber ein Gitternetzwerk verbundenen Kernen besteht. Obwohl der Prozessor f{\"u}r nachrichten-basierte Kommunikation entwickelt worden ist, zeigen die Ergebnisse dieser Arbeit, dass einseitige Kommunikation auf Basis gemeinsamen Speichers effizient auf diesem Architekturtyp realisiert werden kann. Einseitige Kommunikation erm{\"o}glicht Datenaustausch zwischen Prozessen, bei der der Empf{\"a}nger keine Details {\"u}ber die stattfindende Kommunikation besitzen muss. Im Sinne des MPI-Standards ist so ein Zugriff auf Speicher entfernter Prozesse m{\"o}glich. Zur Umsetzung dieses Konzepts auf nicht-koh{\"a}renten Architekturen werden in dieser Arbeit sowohl eine effiziente Prozesssynchronisation als auch ein Kommunikationsschema auf Basis von software-basierter Cache-Koh{\"a}renz erarbeitet und untersucht. Die Prozesssynchronisation setzt das Konzept der general active target synchronization aus dem MPI-Standard um. Ein existierendes Klassifikationsschema f{\"u}r dessen Implementierungen wird erweitert und zur Identifikation einer geeigneten Klasse f{\"u}r die nicht-koh{\"a}rente Plattform des SCC verwendet. Auf Grundlage der Klassifikation werden existierende Implementierungen analysiert, daraus geeignete Konzepte extrahiert und ein leichtgewichtiges Synchronisationsprotokoll f{\"u}r den SCC entwickelt, das sowohl gemeinsamen Speicher als auch ungecachete Speicherzugriffe verwendet. Das vorgestellte Schema ist nicht anf{\"a}llig f{\"u}r Verz{\"o}gerungen zwischen Prozessen und erlaubt direkte Kommunikation sobald beide Kommunikationspartner daf{\"u}r bereit sind. Die experimentellen Ergebnisse zeigen ein sehr gutes Skaliserungsverhalten und eine f{\"u}nffach geringere Latenz f{\"u}r die Prozesssynchronisation im Vergleich zu einer auf Nachrichten basierenden MPI-Implementierung des SCC. F{\"u}r die Kommunikation wird mit SCOSCo ein auf gemeinsamen Speicher und software-basierter Cache-Koh{\"a}renz basierenden Konzept vorgestellt. Entsprechende Anforderungen an die Koh{\"a}renz, die dem MPI-Standard entsprechen, werden aufgestellt und eine schlanke Implementierung auf Basis der Hard- und Software-Funktionalit{\"a}ten des SCCs entwickelt. Trotz einer aufgedecktem Fehlfunktion im Speichersubsystem des SCC kann in den experimentellen Auswertungen von Mikrobenchmarks eine f{\"u}nffach verbesserte Bandbreite und eine nahezu vierfach verringerte Latenz beobachtet werden. In Anwendungsexperimenten, wie einer dreidimensionalen schnellen Fourier-Transformation, kann der Anteil der Kommunikation an der Laufzeit um den Faktor f{\"u}nf reduziert werden. In Erg{\"a}nzung dazu werden in dieser Arbeit Konzepte aufgestellt, die in zuk{\"u}nftigen Architekturen, die Cache-Koh{\"a}renz nicht auf einer globalen Ebene des Prozessors liefern k{\"o}nnen, f{\"u}r die Umsetzung von Software-basierter Koh{\"a}renz f{\"u}r einseitige Kommunikation hilfreich sind.}, language = {en} } @inproceedings{Harrison2010, author = {Harrison, William}, title = {Malleability, obliviousness and aspects for broadcast service attachment}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:517-opus-41389}, year = {2010}, abstract = {An important characteristic of Service-Oriented Architectures is that clients do not depend on the service implementation's internal assignment of methods to objects. It is perhaps the most important technical characteristic that differentiates them from more common object-oriented solutions. This characteristic makes clients and services malleable, allowing them to be rearranged at run-time as circumstances change. That improvement in malleability is impaired by requiring clients to direct service requests to particular services. Ideally, the clients are totally oblivious to the service structure, as they are to aspect structure in aspect-oriented software. Removing knowledge of a method implementation's location, whether in object or service, requires re-defining the boundary line between programming language and middleware, making clearer specification of dependence on protocols, and bringing the transaction-like concept of failure scopes into language semantics as well. This paper explores consequences and advantages of a transition from object-request brokering to service-request brokering, including the potential to improve our ability to write more parallel software.}, language = {en} } @inproceedings{SurajbaliGraceCoulson2010, author = {Surajbali, Bholanathsingh and Grace, Paul and Coulson, Geoff}, title = {Preserving dynamic reconfiguration consistency in aspect oriented middleware}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:517-opus-41379}, year = {2010}, abstract = {Aspect-oriented middleware is a promising technology for the realisation of dynamic reconfiguration in heterogeneous distributed systems. However, like other dynamic reconfiguration approaches, AO-middleware-based reconfiguration requires that the consistency of the system is maintained across reconfigurations. AO-middleware-based reconfiguration is an ongoing research topic and several consistency approaches have been proposed. However, most of these approaches tend to be targeted at specific contexts, whereas for distributed systems it is crucial to cover a wide range of operating conditions. In this paper we propose an approach that offers distributed, dynamic reconfiguration in a consistent manner, and features a flexible framework-based consistency management approach to cover a wide range of operating conditions. We evaluate our approach by investigating the configurability and transparency of our approach and also quantify the performance overheads of the associated consistency mechanisms.}, language = {en} } @inproceedings{OPUS4-3948, title = {Preface}, editor = {Adams, Bram and Haupt, Michael and Lohmann, Daniel}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:517-opus-41338}, year = {2010}, abstract = {Aspect-oriented programming, component models, and design patterns are modern and actively evolving techniques for improving the modularization of complex software. In particular, these techniques hold great promise for the development of "systems infrastructure" software, e.g., application servers, middleware, virtual machines, compilers, operating systems, and other software that provides general services for higher-level applications. The developers of infrastructure software are faced with increasing demands from application programmers needing higher-level support for application development. Meeting these demands requires careful use of software modularization techniques, since infrastructural concerns are notoriously hard to modularize. Aspects, components, and patterns provide very different means to deal with infrastructure software, but despite their differences, they have much in common. For instance, component models try to free the developer from the need to deal directly with services like security or transactions. These are primary examples of crosscutting concerns, and modularizing such concerns are the main target of aspect-oriented languages. Similarly, design patterns like Visitor and Interceptor facilitate the clean modularization of otherwise tangled concerns. Building on the ACP4IS meetings at AOSD 2002-2009, this workshop aims to provide a highly interactive forum for researchers and developers to discuss the application of and relationships between aspects, components, and patterns within modern infrastructure software. The goal is to put aspects, components, and patterns into a common reference frame and to build connections between the software engineering and systems communities.}, language = {en} } @book{OPUS4-3946, title = {Proceedings of the 9th Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS '10)}, editor = {Adams, Bram and Haupt, Michael and Lohmann, Daniel}, publisher = {Universit{\"a}tsverlag Potsdam}, address = {Potsdam}, isbn = {978-3-86956-043-4}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:517-opus-41221}, publisher = {Universit{\"a}t Potsdam}, pages = {47}, year = {2010}, abstract = {Aspect-oriented programming, component models, and design patterns are modern and actively evolving techniques for improving the modularization of complex software. In particular, these techniques hold great promise for the development of "systems infrastructure" software, e.g., application servers, middleware, virtual machines, compilers, operating systems, and other software that provides general services for higher-level applications. The developers of infrastructure software are faced with increasing demands from application programmers needing higher-level support for application development. Meeting these demands requires careful use of software modularization techniques, since infrastructural concerns are notoriously hard to modularize. Aspects, components, and patterns provide very different means to deal with infrastructure software, but despite their differences, they have much in common. For instance, component models try to free the developer from the need to deal directly with services like security or transactions. These are primary examples of crosscutting concerns, and modularizing such concerns are the main target of aspect-oriented languages. Similarly, design patterns like Visitor and Interceptor facilitate the clean modularization of otherwise tangled concerns. Building on the ACP4IS meetings at AOSD 2002-2009, this workshop aims to provide a highly interactive forum for researchers and developers to discuss the application of and relationships between aspects, components, and patterns within modern infrastructure software. The goal is to put aspects, components, and patterns into a common reference frame and to build connections between the software engineering and systems communities.}, language = {en} }