@article{ChristgauSchnor2017, author = {Christgau, Steffen and Schnor, Bettina}, title = {Exploring one-sided communication and synchronization on a non-cache-coherent many-core architecture}, series = {Concurrency and computation : practice \& experience}, volume = {29}, journal = {Concurrency and computation : practice \& experience}, publisher = {Wiley}, address = {Hoboken}, issn = {1532-0626}, doi = {10.1002/cpe.4113}, pages = {15}, year = {2017}, abstract = {The ongoing many-core design aims at core counts where cache coherence becomes a serious challenge. Therefore, this paper discusses how one-sided communication and the required process synchronization can be realized on a non-cache-coherent many-core CPU. The Intel Single-chip Cloud Computer serves as an exemplary hardware architecture. The presented approach is based on software-managed cache coherence for MPI one-sided communication. The prototype implementation delivers a PUT performance of up to 5 times faster than the default message-based approach and reveals a reduction of the communication costs for the NAS Parallel Benchmarks 3-D fast Fourier Transform by a factor of 5. Further, the paper derives conclusions for future non-cache-coherent architectures.}, language = {en} } @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} }