1 research outputs found

    Programmtransformationen fĂŒr Vielteilchensimulationen auf Multicore-Rechnern

    Get PDF
    In dieser Dissertation werden Programmtransformationen fĂŒr die Klasse der regulĂ€r-irregulĂ€ren Schleifenkomplexe, welche typischerweise in komplexen Simulationscodes fĂŒr Vielteilchensysteme auftreten, betrachtet. Dabei wird die Effizienz der resultierenden Programme auf modernen Multicore-Systemen untersucht. RegulĂ€re Schleifenkomplexe zeichnen sich durch feste Schleifengrenzen und eine regelmĂ€ĂŸige Struktur der AbhĂ€ngigkeiten der Berechnungen aus, bei irregulĂ€ren Berechnungen sind AbhĂ€ngigkeiten zwischen Berechnungen erst zur Laufzeit bekannt und stark von den Eingabedaten abhĂ€ngig. Die hier betrachteten regulĂ€ren-irregulĂ€ren Berechnungen koppeln beide Arten von Berechnungen eng. Die Herausforderung der effizienten Realisierung regulĂ€r-irregulĂ€rer Schleifenkomplexe auf modernen Multicore-Systemen liegt in der Kombination von Transformationstechnicken, die sowohl ein hohes Maß an ParallelitĂ€t erlauben als auch die LokalitĂ€t der Berechnungen berĂŒcksichtigen. Moderne Multicore-Systeme bestehen aus einer komplexen Speicherhierachie aus privaten und gemeinsam genutzten Caches, sowie einer gemeinsamen Speicheranbindung. Diese neuen architektonischen Merkmale machen es notwendig Programmtransformationen erneut zu betrachten und die Effizienz der Berechnungen neu zu bewerten. Es werden eine Reihe von Transformationen betrachtet, die sowohl die Reihenfolge der Berechnungen als auch die Reihenfolge der Abspeicherung der Daten im Speicher Ă€ndern, um eine erhöhte rĂ€umliche und zeitliche LokalitĂ€t zu erreichen. Parallelisierung und LokalitĂ€t sind eng verknĂŒpft und beeinflussen gemeinsam die Effizienz von parallelen Programmen. Es werden in dieser Arbeit verschiedene Parallelisierungsstrategien fĂŒr regulĂ€r-irregulĂ€re Berechnungen fĂŒr moderne Multicore-Systeme betrachtet. Einen weiteren Teil der Arbeit bildet die Betrachtung rein irregulĂ€rer Berechnungen, wie sie typisch fĂŒr eine große Anzahl von Vielteilchensimualtionscodes sind. Auch diese Simulationscodes wurden fĂŒr Multicore-Systeme betrachtet und daraufhin untersucht, inwieweit diese auf modernen Multicore-CPUs skalieren. Die neuartige Architektur von Multicore-System, im besonderen die in hohem Maße geteilte Speicherbandbreite, macht auch hier eine neue Betrachtung solcher rein irregulĂ€rer Berechnungen notwendig. Es werden Techniken betrachtet, die die Anzahl der zu ladenden Daten reduzieren und somit die Anforderungen an die gemeinsame Speicherbandbreite reduzieren
    corecore